如何向sqlserver插入海量数据?
double value = 50.0;
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection sqlconn = new SqlConnection("data source=WANGSHUAI-PC\\SQLEXPRESS;initial catalog=Stock;integrated security=sspi");
            SqlCommand sqlcmd = sqlconn.CreateCommand();
            sqlcmd.CommandText = "insert into MyTable values(@myValue)";
            Random random = new Random();
            value = value + (random.NextDouble() * 10.0 - 5.0);
            SqlParameter param = new SqlParameter("@myValue", value);
            sqlcmd.Parameters.Add(param);
            sqlconn.Open();
            sqlcmd.ExecuteNonQuery();
            sqlconn.Close();
        }上面的代码显示了我的意图,但当我用一个for循环时,它指出@myValue只能用一次。

解决方案 »

  1.   

    你可以先把数据放到DataTable 中,然后再一次性更新所有的嘛~用SqlDataAdapter 的更新方法~
      

  2.   

    可以先把数据存入文件,然后用BULK INSERT语句导入。
      

  3.   

    对用 BULK INSERT 效率很高
      

  4.   

    海量数据不应该在程序上处理,尽量在数据库上用BCP处理
      

  5.   

    double value = 50.0;
            private void button1_Click(object sender, EventArgs e)
            {
                SqlConnection sqlconn = new SqlConnection("data source=WANGSHUAI-PC\\SQLEXPRESS;initial catalog=Stock;integrated security=sspi");
                SqlCommand sqlcmd = sqlconn.CreateCommand();
    sqlconn.Open();
    for(int i=0;i<10000;i++)
    {
                sqlcmd.CommandText = "insert into MyTable values(@myValue)";
                Random random = new Random();
                value = value + (random.NextDouble() * 10.0 - 5.0);
                SqlParameter param = new SqlParameter("@myValue", value);
                sqlcmd.Parameters.Add(param);
                
                sqlcmd.ExecuteNonQuery();
    }
                sqlconn.Close();
            } 
      

  6.   

    6楼错误!
    表就是id,stockValue两列,id是主键。