我正在尝试从两个不同且独立的telerik Gridview获取数据。 (第一个用于客户,第二个用于编辑选定的客户)
我想从第一个客户ID获得。我从之前的表单中创建了一个对象,并尝试使其工作,但是当它想要获取最后一个表单的第一个元素时,它总是为0。
Visual Studio告诉我这个运行时错误
以下是3个不同图层中的代码
第一个
private void btnEdt_Click(object sender, EventArgs e)
{
Ref_View_Model = new View_model._View_Model();
Ref_C = new Customers();
foreach (var RowInfo in Ref_C.radGridView1.SelectedRows)
{
FireCell = RowInfo.Cells[0].Value.ToString();
}
Ref_C.radGridView1.CurrentRow.Delete();
Ref_C.customersTableAdapter.Update(Ref_C.sales_and_Inventory_SystemDataSet);
Ref_C.customersTableAdapter.Fill(Ref_C.sales_and_Inventory_SystemDataSet.Customers);
Ref_View_Model.GetEditCustomers(FireCell, txtFName.Text, txtLName.Text, txtPhn.Text, txtDdrss.Text);
第二层
public void GetEditCustomers(string _id,string _fName, string _lName, string _phone, string _address)
{
Ref_Model = new Model._Model();
Ref_Model.EditCustomres(_id, _fName, _lName, _phone, _address);
}
和第三个
public void EditCustomres( string _id,string _fName, string _lName, string _phone, string _address)
{
Connection_String = @"Data Source=MOSTAFA-PC;Initial Catalog=" + "Sales and Inventory System" + ";Integrated Security=TrueData Source=MOSTAFA-PC;Initial Catalog=" + "Sales and Inventory System" + ";Integrated Security=True;";
Con = new SqlConnection();
Con.ConnectionString = Connection_String;
Helper = Convert.ToInt32(_id);
Con.Open();
Cmd = new SqlCommand();
Cmd.Connection = Con;
Cmd.CommandType = CommandType.Text;
Cmd.CommandText = "update Customers "+
"set FName=" + _fName + ",LName=" + _lName + ",Phone=" + _phone + ",[Address]=" + _address +
"where Id like " + Helper;
Cmd.ExecuteNonQuery();
Cmd.Dispose();
}
我不知道如何到达我试过linq的循环中的那条线但是它运行不顺利
我该如何解决这个问题?
答案 0 :(得分:2)
我认为这是一种更简洁的方法,从行中获取对象并获取所需的值。我个人不建议尝试使用单元格索引获取值,仅在绝对必要的情况下,因为有时您只是猜测单元格包含的内容。
由于我不知道您要显示的是哪种对象,只需更改此代码中的 MyObject 即可。 (我只是假设网格包含客户)
myValue 是您要查找的值。
foreach (var RowInfo in Ref_C.radGridView1.SelectedRows)
{
var customer = RowInfo.DataBoundItem as MyObject;
// Reach the property that are located in Cells[0]
var myValue = customer.SomeProperty
}
希望有所帮助