注册 登录
编程论坛 ASP.NET技术论坛

字符串格式不正确,怎么回事啊

馨馨 发布于 2008-04-28 10:49, 933 次点击
我做了个更新,代码是:
  string str = Request.QueryString["param1"].ToString();
        if (yfjine.Text=="" || sfjine.Text=="" || beizhu.Text=="")
        {
            sa =  DBNull.Value;
        }
        else
        {
        //将应付金额等字段插入purchaselist
        SqlCommand mycomm1 = new SqlCommand("update purchaselist set purchasedate='" + DateTimePicker1.Value + "',gainwarehouse='" + DropDownList3.SelectedItem.Text + "',yfje='" + yfjine.Text + "',sfje='" + sfjine.Text + "',manager='" + DropDownList2.SelectedItem.Text + "',note='" + beizhu.Text.ToString() + "' where purchaseid ='" + Convert.ToInt32(str)+"'", conn);
        mycomm1.ExecuteNonQuery();
        }其中where purchaseid ='" + Convert.ToInt32(str)+"'中的str是string str = Request.QueryString["param1"].ToString();
它是从b页面传回来的值,(运行了a 页面之后,进入了b页面添加了信息之后获得值再返回到a页面,获得值的方法是string param = Session["purchaseid"].ToString();
   
    //给进货单界面传值  
       Response.Redirect("jinhuodan.aspx?param1='"+ param+"'"); )
请大家给看看啊,怎么就是报错说字符串格式不正确啊,我的字段:
进货单(purchaselist)
名称    列名    数据类型    长度    允许空
编号(主键)    purchaseid     Int (自动)    4    
原始编号(自输)    yuanshiid    int    4    
供货商名称    gname    varchar    80    NULL
进货日期    purchasedate    datetime    8    
收货仓库    gainwarehouse    char    10    NULL
应付金额    yfje    Int    4    NULL
实付金额    sfje    Int l    4    NULL
经办人    manager    char    14    NULL
备注    note    text    16    NULL
2 回复
#2
hebingbing2008-04-28 12:27
where purchaseid ='" + Convert.ToInt32(str)+"'"你把这个str的转换不要写在sql语句中,在外面转换过来了再用,这不是sql转换的语法,这是c#的。
或者应用sql的转换函数cast或者convert,语法是:
cast(expression as data_type)  
convert(data_type[(length)],expression [,style])
如果我没有记错的话应该就是这样的语法,具体你也可以查查书。
#3
馨馨2008-04-28 22:30
谢谢了,我解决了 用的是session
1