下面是代码请大家帮忙看看错在何处?
public void sendSMS()
{
strLink="DSN=ipswitch_manager_web;uid=ipswitch;pwd=ipswitch";

conn=new OdbcConnection(strLink);
conn.Open();
StreamReader sr=new StreamReader("SMSSoned.ocd");
string sendAll=sr.ReadToEnd();
sr.Close();
string[] sendLineArry=sendAll.Split('\n');
string strsql="";
string[] sendColArry;
//获得随机编号
string mystr="";
DateTime mydate;
string y,m,d;
string h,f,s;
string ymd,hfs,zsj;
MessageBox.Show(sendLineArry.Length.ToString());
for(int i=0;i<sendLineArry.Length-1;i++)
{
mydate=DateTime.Now;
mydate.AddMinutes(mydate.Minute+10);
mystr=mystr+mydate.Year.ToString()+mydate.Month.ToString()+mydate.Day.ToString();
Random ran=new Random();
mystr=(mystr+ran.Next()).Substring(0,12);
y=mydate.Year.ToString();
m=mydate.Month.ToString();
d=mydate.Day.ToString();
h=mydate.Hour.ToString();
f=mydate.Minute.ToString();
s=mydate.Second.ToString();
ymd=y+"-"+m+"-"+d;
hfs=h+":"+f+":"+s;
zsj=ymd+" "+hfs;
sendColArry=sendLineArry[i].Split('\t');
//if(sendColArry[0].Equals("") && (sendColArry[0].Remove(4,11).Equals("134") || sendColArry[0].Remove(4,11).Equals("135") || sendColArry[0].Remove(4,11).Equals("136") || sendColArry[0].Remove(4,11).Equals("137") || sendColArry[0].Remove(4,11).Equals("138") || sendColArry[0].Remove(4,11).Equals("139")))
//{
//MessageBox.Show(sendColArry[0]);
//}
strsql="insert into PREDIALTASK values('"+mystr+"',333,'"+zsj+"','"+zsj+ "','"+zsj+"','"+zsj+"',1,0,'9999078','96160','9999077','96160','"+sendColArry[1]+"^"+sendColArry[0]+"^',0,0,2,0,1,0,0)";
cmd=new OdbcCommand(strsql,conn);
}
conn.Close();

}

解决方案 »

  1.   

    操作大型的数据库,最好用后台存储过程进行操作,在存储过程中用数据库事务连接,每个操作完成都要进行Commit Transaction;操作失败用Rollback Transaction操作
    你的程序没有执行
    如下:
    public void sendSMS()
    {
    strLink="DSN=ipswitch_manager_web;uid=ipswitch;pwd=ipswitch";conn=new OdbcConnection(strLink);
    conn.Open();
    StreamReader sr=new StreamReader("SMSSoned.ocd");
    string sendAll=sr.ReadToEnd();
    sr.Close();
    string[] sendLineArry=sendAll.Split('\n');
    string strsql="";
    string[] sendColArry;
    //获得随机编号
    string mystr="";
    DateTime mydate;
    string y,m,d;
    string h,f,s;
    string ymd,hfs,zsj;
    MessageBox.Show(sendLineArry.Length.ToString());
    for(int i=0;i<sendLineArry.Length-1;i++)
    {
    mydate=DateTime.Now;
    mydate.AddMinutes(mydate.Minute+10);
    mystr=mystr+mydate.Year.ToString()+mydate.Month.ToString()+mydate.Day.ToString();
    Random ran=new Random();
    mystr=(mystr+ran.Next()).Substring(0,12);
    y=mydate.Year.ToString();
    m=mydate.Month.ToString();
    d=mydate.Day.ToString();
    h=mydate.Hour.ToString();
    f=mydate.Minute.ToString();
    s=mydate.Second.ToString();
    ymd=y+"-"+m+"-"+d;
    hfs=h+":"+f+":"+s;
    zsj=ymd+" "+hfs;
    sendColArry=sendLineArry[i].Split('\t');
    //if(sendColArry[0].Equals("") && (sendColArry[0].Remove(4,11).Equals("134") || sendColArry[0].Remove(4,11).Equals("135") || sendColArry[0].Remove(4,11).Equals("136") || sendColArry[0].Remove(4,11).Equals("137") || sendColArry[0].Remove(4,11).Equals("138") || sendColArry[0].Remove(4,11).Equals("139")))
    //{
    //MessageBox.Show(sendColArry[0]);
    //}
    strsql="insert into PREDIALTASK values('"+mystr+"',333,'"+zsj+"','"+zsj+ "','"+zsj+"','"+zsj+"',1,0,'9999078','96160','9999077','96160','"+sendColArry[1]+"^"+sendColArry[0]+"^',0,0,2,0,1,0,0)";
    cmd=new OdbcCommand(strsql,conn);
    int Return_V = cmd.ExecuteNonQuery();
       if(Return_V == 0)
       {
           MessageBox.Show("OK");
       }
       else
       {
           MessageBox.Show("ERR");
        }}
    conn.Close();}
      

  2.   

    ms作的东西具有垄断性的,SYBASE的开发最好用PB