当前位置:编程学习 > C#/ASP.NET >>

各位大侠,我想从一个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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,