2011-06-30 47 views
1

将某个2维数组直接移入数据库(SQL Server)而无需将其转换为SQL语句是否可以?C#&SQL Server:将数组直接移动到SQL Server中

我知道在vb6.0中有某种直接连接,但我不记得它是如何完成的,也不是如果它仍然有可能。

+0

可能重复的[如何通过用户定义的表型,如C#存储Procedured参数](http://stackoverflow.com/questions/1030848/how-to-pass-user-defined-table-type -as-stored-procedured-parameter-in-c) – GSerg

+0

我会研究它。但这并不完全是我想到的。 – ralph

+0

嗯,当你的问题可以以多种方式理解时,你就会得到这样的结果:) – GSerg

回答

0

在VB6中,您可以通过创建记录集,插入行并调用.Update来避免明确的INSERT语句。如果Command模式为adCmdTableDirect,这可能是“直接连接”。

在ADO.NET中,您也可以这样做,但有许多方法,例如Linq To Sql或Entity Framework。如果你想要它简单的低级香草VB6风格,那可能是DataAdapter.Update method

using (System.Data.SqlClient.SqlConnection c = new System.Data.SqlClient.SqlConnection("Data Source=...")) 
{ 
    using (System.Data.SqlClient.SqlDataAdapter a = new System.Data.SqlClient.SqlDataAdapter("select * from atable;", c)) 
    { 
     using (System.Data.SqlClient.SqlCommandBuilder b = new System.Data.SqlClient.SqlCommandBuilder(a)) 
     { 
      using (DataTable t = new DataTable("atable")) 
      { 
       a.FillSchema(t, SchemaType.Source); 

       t.Rows.Add(1, "foo"); 
       t.Rows.Add(2, "bar"); 

       a.Update(t); 

      } 
     } 
    } 
} 
+0

谢谢,这听起来很正确! – ralph

+0

@ralph Nah,这是错误的。即将编辑。 – GSerg

+0

它确实指向了我正确的方向。你的代码确实有帮助。 – ralph

相关问题