馨馨 发表于 2008-4-28 10:49

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

我做了个更新,代码是:
  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

hebingbing 发表于 2008-4-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])
如果我没有记错的话应该就是这样的语法,具体你也可以查查书。

馨馨 发表于 2008-4-28 22:30

谢谢了,我解决了 用的是session

页: [1]

编程论坛