date="'"+dtime+","+save[i,0].ToString()+","+save[i,1].ToString()+","+save[i,2].ToString()+","+save[i,3].ToString()+","+save[i,4].ToString()+","+save[i,5].ToString()+","+save[i,6].ToString()+"'";
ocmd.CommandText = "insert into hao(日期,NO1,NO2,NO3,NO4,NO5,NO6,NO7) values("+date+")";
ocmd.ExecuteNonQuery();
在上面的代码中,values的值如果用一个字符串变量代替,它就不行。但我又需要这样,请高手给个办法!
date="'"+dtime+"','"+save[i,0].ToString()+"','"+save[i,1].ToString()+"','"+save[i,2].ToString()+"','"+save[i,3].ToString()+"','"+save[i,4].ToString()+"','"+save[i,5].ToString()+"','"+save[i,6].ToString()+"'";
因为有的需要单引号,有的不需要。这里很容易出错。
我个人还是习惯用如下方式
string model="'{0}',{1},{2},{3},{4},{5},{6},{7}";
在使用的时候
string.Format(model,save[i,0],save[i,1],save[i,2],save[i,3],save[i,4],save[i,5],save[i,6],save[i,7]);
这样更清晰。
SqlCommand ocmd = new SqlCommand();
ocmd.CommandText = "INSERT INTO hao(日期,NO1,NO2,NO3,NO4,NO5,NO6,NO7) VALUES (@日期,@NO1,@NO2,@NO3,@NO4,@NO5,@NO6,@NO7)";
ocmd.Parameters.Add("@日期", SqlDbType.VarChar).Value = dtime;
ocmd.Parameters.Add("@NO1", SqlDbType.VarChar).Value = save[i, 0].ToString();
ocmd.Parameters.Add("@NO2", SqlDbType.VarChar).Value = save[i, 1].ToString();
ocmd.Parameters.Add("@NO3", SqlDbType.VarChar).Value = save[i, 2].ToString();
ocmd.Parameters.Add("@NO4", SqlDbType.VarChar).Value = save[i, 3].ToString();
ocmd.Parameters.Add("@NO5", SqlDbType.VarChar).Value = save[i, 4].ToString();
ocmd.Parameters.Add("@NO6", SqlDbType.VarChar).Value = save[i, 5].ToString();
ocmd.Parameters.Add("@NO7", SqlDbType.VarChar).Value = save[i, 6].ToString();
ocmd.ExecuteNonQuery(); 上面代码中, Value = 后面可以用变量.
ocmd.CommandText = "insert into hao(日期,NO1,NO2,NO3,NO4,NO5,NO6,NO7) values("+date+")";
ocmd.ExecuteNonQuery();
你这样写好像vb的 方法,还是用其他的方法比较合适
ocmd.CommandText = "INSERT INTO hao(日期,NO1,NO2,NO3,NO4,NO5,NO6,NO7) VALUES (@日期,@NO1,@NO2,@NO3,@NO4,@NO5,@NO6,@NO7)";
ocmd.Parameters.Add("@日期", OleDbType.DBTime).Value = dtime;
ocmd.Parameters.Add("@NO1", OleDbType.VarChar).Value = save[i, 0].ToString();
ocmd.Parameters.Add("@NO2", OleDbType.VarChar).Value = save[i, 1].ToString();
ocmd.Parameters.Add("@NO3", OleDbType.VarChar).Value = save[i, 2].ToString();
ocmd.Parameters.Add("@NO4", OleDbType.VarChar).Value = save[i, 3].ToString();
ocmd.Parameters.Add("@NO5", OleDbType.VarChar).Value = save[i, 4].ToString();
ocmd.Parameters.Add("@NO6", OleDbType.VarChar).Value = save[i, 5].ToString();
ocmd.Parameters.Add("@NO7", OleDbType.VarChar).Value = save[i, 6].ToString();
ocmd.ExecuteNonQuery();