输入形如: 
11 22 33 44 
22 33 44 55 
33 44 55 66 
的时候。 //SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connstr"]); 
//conn.Open(); 
//string a = this.TextBox1.Text; 
//string[] str = a.Split(' '); 
//string a1 = str[0]; 
//string a2 = str[1]; 
//string a3 = str[2]; 
//string a4 = str[3]; 
//string strsql = "insert into gys(gysname,gysqq,gyshttp,gystel) values('"+a1+"','"+a2+"','"+a3+"','"+a4+"')"; 
//SqlCommand comm = new SqlCommand(strsql,conn); 
//comm.ExecuteNonQuery(); 
//Response.Write("添加成功"); 只能把第一条写入到数据库。 
而下面的: 
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connstr"]); 
        conn.Open(); 
        string a = this.TextBox1.Text; 
        string[] str = a.Split(' '); 
        string a1 = str[0]; 
        string a2 = str[1]; 
        string a3 = str[2]; 
        string a4 = str[3];         for(int i=0;i <TextBox1.Rows;i++) 
        { 
            string strsql = "insert into gys(gysname,gysqq,gyshttp,gystel) values('"+a1+"','"+a2+"','"+a3+"','"+a4+"')"; 
            SqlCommand comm = new SqlCommand(strsql,conn); 
            comm.ExecuteNonQuery(); 
            Response.Write("添加成功"); 
        } 连一条都插入不进去了,哪里写错了呀。???? 

解决方案 »

  1.   


    SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connstr"]);         string strsql = string.Empty;
            string a = this.TextBox1.Text; 
            string[] strs = a.Split('\r');
            foreach(string s in strs)
            {
                string[] str = a.Split(' '); 
                string a1 = str[0]; 
                string a2 = str[1]; 
                string a3 = str[2]; 
                string a4 = str[3]; 
                strsql += "insert into gys(gysname,gysqq,gyshttp,gystel) values('"+a1+"','"+a2+"','"+a3+"','"+a4+"');"; 
            }
                SqlCommand comm = new SqlCommand(strsql,conn); 
                conn.Open(); 
                comm.ExecuteNonQuery(); 
                conn.Close();
                Response.Write("添加成功"); 
            } 
      

  2.   

    我只知道SQL 2005里用union all
    請問SQL 2005里一次插入多條語句能直接這樣寫嗎
    insert into ……
    insert into ……
    insert into ……
      

  3.   


    using System.Text;StringBuilder sb = new StringBuilder();
    sb.Append("insert into gys(gysname,gysqq,gyshttp,gystel)");
    sb.Append("select '"+a1+"','"+a2+"','"+a3+"','"+a4+"');
    foreach(條件)//條件自己想
    {
        sb.Append("union all")
        sb.Append("select '"+a1+"','"+a2+"','"+a3+"','"+a4+"'");
    }
    string stringSQL = sb.ToString()
    //略
      

  4.   

    上一個是SQL2005
    如果是Oracleusing System.Text;StringBuilder sb = new StringBuilder();
    sb.Append("begin");
    foreach(條件)
    {
        sb.Append("insert into gys(gysname,gysqq,gyshttp,gystel) values('"+a1+"','"+a2+"','"+a3+"','"+a4+"');")//注意有分號的.
    }
    sb.Append("end;");//注意有分號的
    string stringSQL = sb.ToString()
    //略
      

  5.   

    能够,sql会优化的但这中编程习惯不好。谢谢提醒
    上面我的方法有点错误foreach中
    string[] str = a.Split(' '); ===> string[] str = s.Split(' ');