将“|”这个分隔符以内的所有字串,分别变成一条记录,存入数据表中,请问如何做?字符串如下:
|12#04#8613915085208#测试#06-05-31 15:31:31|13#04#8613815085208#测试#06-05-31 15:31:31|14#04#8613815085208#测试#06-05-31 15:31:31|要求分隔后得到如下字符串,并且作为一条记录,存入数据表中字段为"SmsText"中,请问如何做?
12#04#8613815085208#测试#06-05-31 15:31:31
13#04#8613815085208#测试#06-05-31 15:31:31
14#04#8613815085208#测试#06-05-31 15:31:31
我写了一些但执行是错的。请大家看看string[] data=x.Split('|'); //把'|'字符去了,读出整条短信内容,一条条地存入临时数据表中
foreach(string i in data)

{SqlConnection myConn = new SqlConnection("Initial Catalog=savesms;Data Source=(local);User ID = sa; Password=ren;Enlist=true;Pooling=true;Max Pool Size=512;Min Pool Size=0");
myConn.Open();
strSQL7="INSERT INTO TempRecieveSms(SmsText) VALUES('"+i.ToString()+"')";
SqlCommand myCommand7=new SqlCommand (strSQL7,myConn);
myCommand7.ExecuteNonQuery();  

myConn.Close();}

解决方案 »

  1.   

    提示错误:未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。其他信息: 系统错误。myCommand7.ExecuteNonQuery();  有错
      

  2.   

    SqlConnection myConn = new SqlConnection("Initial Catalog=savesms;Data Source=(local);User ID = sa; Password=ren;Enlist=true;Pooling=true;Max Pool Size=512;Min Pool Size=0");
    myConn.Open();string[] data=x.Split('|'); //把'|'字符去了,读出整条短信内容,一条条地存入临时数据表中
    foreach(string i in data)

    {
    strSQL7="INSERT INTO TempRecieveSms(SmsText) VALUES('"+i.ToString()+"')";
    SqlCommand myCommand7=new SqlCommand (strSQL7,myConn);
    myCommand7.ExecuteNonQuery();  
    }
    myConn.Close();改成这样也是错的。
      

  3.   

    最后一条sql语句可能是空的吧建议最好先生成sql
    sql.Append(" BEGIN TRANSACTION ");
    foreach(string i in data)
    {
    if(i!="")
    sql.Append(" INSERT INTO TempRecieveSms(SmsText) VALUES('"+i.ToString()+"') ");
    }
    sql.Append(" IF @@ERROR = 0 COMMIT TRANSACTION else ROLLBACK TRANSACTION ");
    ...
      

  4.   

    LZ下面这个我已经调试通过using System;
    using System.Data;
    using System.Data.SqlClient;public class Poll
    {
    public static void Main()
    {
    SqlConnection myConn = new SqlConnection("Data Source=(local);User ID = sa; Password=sa;database = pubs");
    myConn.Open(); string x = "|12#04#8613915085208#测试#06-05-31 15:31:31|13#04#8613815085208#测试#06-05-31 15:31:31|14#04#8613815085208#测试#06-05-31 15:31:31|";

    string[] data = x.Split('|'); 
    foreach(string i in data)
    {
    if (i!="")
    {
    string strSQL = "INSERT INTO TempRecieveSms(SmsText) VALUES('"+i.ToString()+"')";
    SqlCommand myCommand = new SqlCommand (strSQL,myConn);
    myCommand.ExecuteNonQuery();  
    }
    }
    myConn.Close();
    }
    }