none
c#如何把二维数组中的数据导入到数据库? RRS feed

  • 问题

  • c#如何把二维数组中的数据导入到数据库?delphi中是这样写的:
      sqlstr:='insert into %s values(''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'')';
     with ADOQuery1 do
         begin
          close;
          sql.clear;
          for i:=0 to row-1 do
          begin
            sql.Text:=format(sqlstr,['t_transinfo',arr[i,0],arr[i,1],arr[i,2],arr[i,3],arr[i,4],arr[i,5],arr[i,6],pgy]);
            execsql;
          end;
        end;
    c#如何写?谢谢
    2009年8月14日 12:37

答案

  • static void Main()
    {
        // 假个定数据表为以下结构
        // 表名 Employee 
        // Id int not null
        // Name nvarchar(50) not null
    
        object[,] vals = new object[3, 2];
    
        vals[0, 0] = 1;
        vals[0, 1] = "John";
    
        vals[1, 0] = 2;
        vals[1, 1] = "Miley";
    
        vals[2, 0] = 3;
        vals[2, 1] = "Cherry";
    
        StringBuilder fBuilder = new StringBuilder();
    
        for (int i = 0; i < vals.GetLength(0); i++)
        {
            fBuilder.AppendLine(String.Format(
                "INSERT INTO Employee (Id, Name) VALUES ({0}, '{1}');", vals[i, 0], vals[i, 1]));
        }
    
        ExecuteNonQuery(fBuilder.ToString());
        Console.WriteLine(fBuilder.ToString());
        Console.ReadLine();
    }
    
    public static void ExecuteNonQuery(String commandText)
    {
        using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=myDataBase;Integrated Security=SSPI;"))
        {
            SqlCommand comm = new SqlCommand(commandText, conn);
            conn.Open();
            comm.ExecuteNonQuery();
        }
    }

    知识改变命运,奋斗成就人生!
    2009年8月14日 14:45
    版主

全部回复

  • 您好,类似,
    请用string.Format
    2009年8月14日 13:57
  • static void Main()
    {
        // 假个定数据表为以下结构
        // 表名 Employee 
        // Id int not null
        // Name nvarchar(50) not null
    
        object[,] vals = new object[3, 2];
    
        vals[0, 0] = 1;
        vals[0, 1] = "John";
    
        vals[1, 0] = 2;
        vals[1, 1] = "Miley";
    
        vals[2, 0] = 3;
        vals[2, 1] = "Cherry";
    
        StringBuilder fBuilder = new StringBuilder();
    
        for (int i = 0; i < vals.GetLength(0); i++)
        {
            fBuilder.AppendLine(String.Format(
                "INSERT INTO Employee (Id, Name) VALUES ({0}, '{1}');", vals[i, 0], vals[i, 1]));
        }
    
        ExecuteNonQuery(fBuilder.ToString());
        Console.WriteLine(fBuilder.ToString());
        Console.ReadLine();
    }
    
    public static void ExecuteNonQuery(String commandText)
    {
        using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=myDataBase;Integrated Security=SSPI;"))
        {
            SqlCommand comm = new SqlCommand(commandText, conn);
            conn.Open();
            comm.ExecuteNonQuery();
        }
    }

    知识改变命运,奋斗成就人生!
    2009年8月14日 14:45
    版主
  • 谢谢!X.X.Y
    2009年8月15日 0:56
  • 你好,数据类型 varchar 转换为 float,请注意字符串与数值的Sql语句有区别。
    jon.valett@gmail.com
    2009年8月18日 1:52
    版主