大家帮帮忙 
for(int i=0;i<DataGrid1.Items.Count;i++){
myConmmand.Parameters.Add(new SqlParameter("@sbbs",SqlDbType.Decimal,9));
         myConmmand.Parameters ["@sbbs"].Value=((TextBox)DataGrid1.Items[i].Cells[0].FindControl("TextBox1")).Text;}
可我的是FOR循环,当I=0时,第一条数据输入到了数据库,可当I=1时,就为空值了,也就是说只能把DATAGRID的第一行第一列输入到数据库,再往下就报错,说是格试不正确。我想就是空值的事。为什么呀?   

解决方案 »

  1.   

    1个comand能重复添加相同的参数@sbbs吗。然后你的@sbbs参数类型是decimal,而你付的值确是string
      

  2.   

    1个comand能重复添加相同的参数@sbbs吗。能 呀。谁说不能了,然后你的@sbbs参数类型是decimal,而你付的值确是string,不管什么型,我第一条数据进行了。高人帮看看。
      

  3.   

    myConmmand.Parameters.Add(new SqlParameter("@wzdm",SqlDbType.Char,15));
    myConmmand.Parameters ["@wzdm"].Value= ((Label)DataGrid1.Items[i].Cells[0].FindControl("vv6")).Text;这个就好使。为什么TEXTBOX不好使呀??????????????????????
      

  4.   

    在循環裏面先將command的參數清除掉,就可能了
      

  5.   

    你为什么要这样写呢
    为什么不把界面处理数据与保存,修改数据分开呢!myConmmand.Parameters.Clear()
    可以是可以!
    但 你可以考虑 换一种思维
      

  6.   

    你这样试试:
    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
        myConmmand.Parameters.Add(new SqlParameter("@sbbs",SqlDbType.Decimal,9));
        myConmmand.Parameters ["@sbbs"].Value=((TextBox)DataGrid1.Items[i].FindControl("TextBox1")).Text;
    }
    ((Label)DataGrid1.Items[i].Cells[0].FindControl("vv6")).Text???
    +++++++++++++++++++++++++++++++++++++++++++++++++++++
    你确认第0列是TextBox还是Lable呢?还是既有TextBox又有Label?