各位大侠,我想从一个TEXTBOX读取数据入库 出错 求解决
textbox 输入的内容卡 密
000000000,0000000
000001111,0000001
在TEXTBOX里是两行数据
我想将这两行数据分别插入数据库的一个表
表的字段如下
ID 卡 密
但是每次提交只能插入一条数据求解
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["dbconn"].ToString();
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
string uid = Session["test"].ToString();
string b = "0";
string[] a = TextBox1.Text.Split("\r\n".ToCharArray());
this.ShowError.Text = a.Length.ToString();
foreach (string str in a)
{
a = str.Split(',');
string sql = "INSERT INTO cards(ka,mi,userid,iskill) values('" + a[0] + "','" + a[1] + "','" + uid + "','"+ b +"')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
Response.Write(a);
}
////Response.Write(a);
cmd.Dispose();
conn.Close();
conn.Dispose();
--------------------编程问答-------------------- 改成:
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["dbconn"].ToString();
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
string uid = Session["test"].ToString();
string b = "0";
string[] a = TextBox1.Text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
this.ShowError.Text = a.Length.ToString();
foreach (string str in a)
{
string[] v = str.Split(',');
string sql = "INSERT INTO cards(ka,mi,userid,iskill) values('" + v[0] + "','" + v[1] + "','" + uid + "','"+ b +"')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
Response.Write(a);
}
////Response.Write(a);
cmd.Dispose();
conn.Close();
conn.Dispose(); --------------------编程问答-------------------- 你的a变量用途太多了,
改为
string[] c;
c = str.Split(',');
string sql = "INSERT INTO cards(ka,mi,userid,iskill) values('" + c[0] + "','" + c[1] + "','" + uid + "','"+ b +"')";
试试看吧 --------------------编程问答-------------------- 上述代码经测试 没有问题,楼主可以断点跟一下 --------------------编程问答-------------------- a = str.Split(',');
a走到这里给变化了 --------------------编程问答--------------------
string[] a = TextBox1.Text.Split("\r\n".ToCharArray());
a = str.Split(',');
这两段LZ在断点的时候可以看看相应的具体的值
还有再用foreach循环的时候不能更改目标源数据的值的(这里你的a就是foreach的源数据),否则会报错
建议下面的foreach的a = str.Split(',');这个值赋值给一个新的变量 --------------------编程问答--------------------
补充:.NET技术 , ASP.NET