Skip to main content
 首页 » 编程设计

c#之无法从 'System.Web.UI.WebControls.Label' 转换为 'string'

2024年01月26日28mfryf

我想在单击按钮提交时将一些值从网格插入到数据库。使用下面给出的代码时显示错误。代码如下。帮助我找到合适的解决方案。

代码:

protected void btnApprove_Click(object sender, EventArgs e) 
   { 
        ShadingAnalysisDataSetTableAdapters.tbl_ItemRequest_StatusTableAdapter rs; 
        rs = new ShadingAnalysisDataSetTableAdapters.tbl_ItemRequest_StatusTableAdapter(); 
 
        var ItemName = (Label)GridView2.SelectedRow.Cells[1].FindControl("lblItem"); 
        var Quantity = (Label)GridView2.SelectedRow.Cells[2].FindControl("lblQnty");  
 
        rs.testInsert(ItemName, Quantity); 
   } 

我已经根据以上建议修改了我的代码。但是现在我遇到了另一个错误。新错误是:未将对象引用设置为对象的实例。

请您参考如下方法:

通过这样做

var ItemName = (Label)GridView2.SelectedRow.Cells[1].FindControl("lblItem"); 

ItemName 将是一个标签,而不是 lblItem 的文本值。我猜 rs.testInsert 方法的两个参数都是字符串,所以你得到了错误,因为你传递了两个标签而不是两个字符串。您可以从标签的 .Text 属性中获取文本值,如下所示

var ItemName = ((Label)GridView2.SelectedRow.Cells[1].FindControl("lblItem")).Text; 
var Quantity = ((Label)GridView2.SelectedRow.Cells[2].FindControl("lblQnty")).Text;