private void data_disp(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
switch(e.CommandName)
{
case "alldata":
DataList1.SelectedIndex=e.Item.ItemIndex;
break; case "simpledata":
DataList1.SelectedIndex=-1;
break; case "editdata":
DataList1.EditItemIndex=e.Item.ItemIndex;
break;
case "canceldata":
DataList1.EditItemIndex=-1;
break;
case "savedata":
rec_disp();


TextBox text_price=DataList1.Items[e.Item.ItemIndex].FindControl["txt_unitprice"];//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(103): 在不带括号的情况下引用了方法“System.Web.UI.Control.FindControl(string)”
ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitprice"]=text_price.Text;//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(106): 无法将类型“string”隐式转换为“int” TextBox text_stock=DataList1.Items[e.Item.ItemIndex].FindControl["txt_stock"];//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(108): 在不带括号的情况下引用了方法“System.Web.UI.Control.FindControl(string)” ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitinstocks"]=text_stock.Text;//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(110): 无法将类型“string”隐式转换为“int” SqlDataAdapter  da=new SqlDataAdapter();
SqlCommandBuilder cb=new SqlCommandBuilder(da);//??
if (da.Update(ds,"products")>0)
{
    DataList1.EditItemIndex=-1;
}
DataList1.DataSource=ds.Tables["products"];
DataList1.DataBind();
break;
}

rec_disp();
DataList1.DataSource=ds.Tables["products"];
DataList1.DataBind();
}

解决方案 »

  1.   

    ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitprice"]=text_price.Text;//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(106): 无法将类型“string”隐式转换为“int”
    unitprice明显是一个int......ps:单价居然是整数,汗~~~~~
    ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitprice"]=Int32.Parse(text_price.Text.Trim());
    转换之前要检查输入的是不是数字。
      

  2.   

    ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitprice"]=Convert.Int32(text_price.Text.Trim());
      

  3.   

    >>TextBox text_price=DataList1.Items[e.Item.ItemIndex].FindControl["txt_unitprice"];//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(103): 在不带括号的情况下引用了方法“System.Web.UI.Control.FindControl(string)”<<TextBox text_price=(TextBox)DataList1.Items[e.Item.ItemIndex].FindControl["txt_unitprice"];

    >>ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitprice"]=text_price.Text;//c:\inetpub\wwwroot\Web9\WebForm5.aspx.cs(106): 无法将类型“string”隐式转换为“int”<<ds.Tables["Products"].Rows[e.Item.ItemIndex].ItemArray["unitprice"]=Convert.Int32(text_price.Text);