Vb.net 是否可以将包含多个参数的单个变量传递给插入查询ln 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

我正在使用VS上的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;它可能有语法错误,希望您能理解