gpt4 book ai didi

sql - 为什么 sqlParameter 请求一个 sourceColumn?

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:41 26 4
gpt4 key购买 nike

我正在检查一个 sqlParameter example来自微软,我正在努力理解:

指定 SourceColumn 的原因和好处是什么? ?

sql 命令已经指定了目标列。

    command = New SqlCommand( _
"INSERT INTO Customers (CustomerID, CompanyName) " & _
"VALUES (@CustomerID, @CompanyName)", connection)

command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID")
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName")

enter image description here

最佳答案

指定 SourceColumn在这种情况下意味着在 DataColumn.ColumnName 中指定列名称属性 ( DataTable )或 Dataset .这仅在您使用 SqlDataAdapter 时才重要对象与您的 SqlCommand 一起像这样:

--first, fill a DataTable with data from the database:
Dim dt As New DataTable
Dim cmdSelect = New SqlCommand("SELECT CustomerID, CompanyName FROM Customers;", connection)
Dim daCustomers As New SqlDataAdapter
daCustomers.SelectCommand = cmdSelect
daCustomers.Fill(dt)

--Now our DataTable has two columns: "CustomerID" and "CompanyName"
--We can help out our DataAdapter by telling it which columns in the database
--correspond with which columns in the DataTable
--which is what you've done with your fourth argument of .Parameters.Add()
command = New SqlCommand( _
"INSERT INTO Customers (CustomerID, CompanyName) " & _
"VALUES (@CustomerID, @CompanyName)", connection)

command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID")
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName")
daCustomers.InsertCommand = command

如果我们这样做,那么我们将不必指定两个参数的值(在本例中,当 InsertCommand 触发时),因为数据适配器将只查看合适DataColumn & DataRow当您调用 daCustomers.Update(dt) 时自动.

同样,如果你想要你的 SqlDataAdapter为了更有用,您还需要指定 SourceColumn对于您定义的参数 UpdateCommandDeleteCommand秒。请注意,很多人更喜欢使用 SqlCommandBuilder object to automatically configure他们的 SqlDataAdapters对于这个和其他简单的适配器,无需为其 SqlCommand 指定太多内容对象,但我更喜欢这种更明确的方法,除了最简单的情况。

我不知道通过指定 SourceColumn 可以获得任何好处当你不使用 SqlDataAdapter用你的SqlCommand .

关于sql - 为什么 sqlParameter 请求一个 sourceColumn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35220259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com