Vb.net 是否可以将包含多个参数的单个变量传递给插入查询ln TableAdapter?
我正在使用VS上的TableAdapter,有如下内容:Vb.net 是否可以将包含多个参数的单个变量传递给插入查询ln TableAdapter?,vb.net,tableadapter,Vb.net,Tableadapter,我正在使用VS上的TableAdapter,有如下内容: TableAdapter.Insert(parameter1,parameter2,parameter3,...,parameterN) TableAdapter.Insert(all_parameters) 我想知道是否可以传递一个包含这些参数的变量,然后得到如下结果: TableAdapter.Insert(parameter1,parameter2,parameter3,...,parameterN) TableAdapter
TableAdapter.Insert(parameter1,parameter2,parameter3,...,parameterN)
TableAdapter.Insert(all_parameters)
我想知道是否可以传递一个包含这些参数的变量,然后得到如下结果:
TableAdapter.Insert(parameter1,parameter2,parameter3,...,parameterN)
TableAdapter.Insert(all_parameters)
注意:我想知道,因为有时我要传递很多参数,行代码变得非常大;否。TableAdapter
Insert
方法是响应在TableAdapter向导设置过程中选中的GenerateDBDirect复选框而生成的,用于插入/更新/删除的直接方法仅以您看到的格式存在
也就是说,您可以将强类型的DataRow传递给Update方法,因为它具有用于将dataset/datatable/DataRow集合/单个DataRow中的更改持久化到数据库的重载
这意味着您可以不执行以下操作来插入行:
personTA.Insert("John", "Smith", 30, "1 The Road");
生成状态已添加的数据行,并对其进行更新,这将导致SQL INSERT运行:
var ro = personDataTable.NewPersonRow();
ro.FirstName = "John";
ro.LastName = "Smith";
ro.Age = 30;
ro.Address = "1, The Road";
personDataTable.AddPersonRow(ro);
//even though it's called Update, this will insert the record to the table, because it's RowState is Added
personTA.Update(ro);
这是TableAdapters的使用方式:将datarow绑定到文本框,用户输入文本框,然后使用Update()将更改保存到数据库。在这样做的过程中,您实际上不需要做任何工作,因此编写代码比执行以下操作更省力:
personTA.Insert(_firstNameTextBox.Text, _lastNameTextBox.Text, …)
当您使用强类型数据集时,可以通过简单的拖动操作创建数据绑定文本框等,方法是将相关节点从“数据源”窗口中拉出,并将其放到表单上。如果你不使用它/没有UI /不是数据绑定,那么考虑到还有其他一些方法可以让你的生活更轻松。如果数据已在数组中,则只需设置行的ItemArray:
var ro = personDataTable.NewPersonRow();
ro.ItemArray = array_with_person_data;
personDataTable.AddPersonRow(ro);
personTA.Update(ro);
抱歉这是C#语法;我刚刚看到你标记了VB。然而,在编码的这一特定方面,这两种语法没有明显的区别——我认为在头脑中删除分号并将var
更改为Dim
将是将这一特定C#转换为VB所需要的全部
编辑:
不要忘记,通常允许您将自己的代码添加到Microsoft在设计器中为您提供的任何内容中。如果双击设计图面中的tableadapter,您将被带到一个空的分部类,您可以在其中添加另一个/您自己的Insert
重载,可能是一个获取数组,然后使用所有参数按顺序调用生成的Insert的类:
Namespace YourProgram.YourDataSetTableAdapters{
Partial Class YourTableAdapter
//ADD YOUR OWN INSERT METHOD HERE
Public Function Insert(things as Object()){
Return this.Insert( _
DirectCast(things[0] as String), _
DirectCast(things[1] as String), _
DirectCast(things[2] as Int32), _
DirectCast(things[0] as String) _
)
End Function
End Class
End Namespace
我猜到了这个VB;它可能有语法错误,希望您能理解