在c#中从网格视图编辑和删除时出错 [英] Error while editing and deleting from grid view in c#
问题描述
嗨!
我有一个网格视图,显示员工的详细信息。它还允许编辑和删除员工及其详细信息。如果选择了编辑,则表单页面上会显示一些文本框,这些文本框将使用所选的员工详细信息进行更新。如果选择删除,则会删除所有员工详细信息。但是,我的程序似乎存在一些问题 - 当我点击编辑(选择命令重命名为编辑)或删除时,有一个错误表明 -
无效的列名称'' mjl
''。
其中mjl是empLoginId(Data Kay)网格。
代码如下:
开.aspx页面 -
< asp:GridView ID = GridView1 宽度 = 100% 高度 = 180px runat = 服务器
AutoGe nerateColumns = False AllowPaging = True DataKeyNames = empLoginId
< span class =code-attribute> OnRowDeleting = adminDelete PageSize = < span class =code-keyword> 5
< span class =code-attribute> onselectedindexchanged = GridView1_SelectedIndexChanged
OnPageIndexChanging = GridView1_PageIndexChanging >
< 列 >
< asp:BoundField DataField = empFname HeaderText = 员工名字
SortExpression = empFname / >
< asp:BoundField DataField = empLname HeaderText = 雇用ee姓氏
SortExpression = empLname / >
< asp:BoundField DataField = pwd HeaderText = 密码 SortExpression = pwd / >
< asp:BoundField DataField = empRole HeaderText = 员工角色
SortExpression = empRole / >
< as p:CommandField ShowSelectButton = True SelectText = 编辑 / >
< asp:CommandField ShowDeleteButton = True / >
< / Columns >
< / asp:GridView > ;
在.aspx.cs页面 -
protected void GridView1_SelectedIndexChanged(< span class =code-keyword> object sender,EventArgs e)
{
int rowIndex = GridView1.SelectedIndex;
string strValue = GridView1.DataKeys [rowIndex] .Value.ToString();
使用(SqlConnection con1 = new SqlConnection( server =。\\SQLEXPRESS; database = dB; Integrated Security = SSPI;))
{
con1 。打开();
使用(SqlCommand command = con1.CreateCommand())
{
command.CommandText = SELECT empFname,empLname,pwd,empTitle,city,empEmail,empType,empRole,dept FROM [emp] WHERE([empLoginId] = + strValue + );
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
TextBox5.Text = reader [ empFname]。ToString()。ToUpper();
TextBox20.Text = reader [ empLname]。ToString()。ToUpper() ;
TextBox11.Text = strValue.ToUpper();
TextBox13.Text = reader [ pwd]。ToString();
TextBox14.Text = reader [ pwd]。ToString();
TextBox15.Text = reader [ empTitle]。ToString()。ToUpper() ;
TextBox16.Text = reader [ dept]。ToString()。ToUpper() ;
TextBox17.Text = reader [ empEmail]。ToString();
}
}
con1.Close();
}
}
受保护 void 跨度> GridView1_PageIndexChanging(<跨度类= 代码关键字>对象跨度>发件人,GridViewPageEventArgs E)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1_SelectedIndexChanged(sender,e);
}
受保护 void adminDelete(<跨度类= 代码关键字>对象跨度>发件人,GridViewDeleteEventArgs E)
{
<跨度类= 代码关键字> INT 的rowIndex = GridView1.SelectedIndex;
string strValue = GridView1.DataKeys [e.RowIndex] .Values [ empLoginId]。ToString();
SqlConnection con1 = new SqlConnection( server =。\\SQLEXPRESS; database = dB; Integrated Security = SSPI;);
con1.Open();
SqlCommand cmd = new SqlCommand( delete来自emp,其中empLoginId = + strValue,con1);
int result = cmd.ExecuteNonQuery();
con1.Close();
if (result == 1 )
{
Label4。 Visible = true ;
Label4.ForeColor = Color.Red;
Label4.Text = strValue + 的详细信息已成功删除;
}
else
{
Label4.Visible = false 跨度>;
}
}
我似乎无法弄清楚我哪里出错了!请帮帮我!
而不是: -
串跨度> strValue中= GridView1.DataKeys [e.RowIndex] .Values [<跨度类= 代码串 >跨度> <跨度类= 代码串> empLoginId]。ToString();
试试这个
string strValue = GridView1.DataKeys [index] .Value.ToString()
而不是:
string strValue = GridView1.DataKeys [e.RowIndex] .Values [ empLoginId]。ToString();
试试这个
<跨度类= 代码关键字>串跨度> strValue中= GridView1.DataKeys [e.RowIndex] .Value.ToString();
看到这个链接,可能对你有所帮助。
在gridview的ASP.NET行更新事件 [ ^ ]
谢谢你。
Hi!
I have a grid-view which displays the details of an employee. It also allows editing and deletion of the employee and his details. If Edit is selected, there are a few text boxes, on the form page, which get updated with the selected employee details. If delete is selected, ALL the employee details get deleted. However, there seems to be some issue with my program - when I click on Edit(Select Command renamed to edit) OR Delete, there is an error which states -
Invalid column name ''mjl
''.
Where mjl is the empLoginId (Data Kay) of the grid.
The code is as follows :
On the .aspx page -
<asp:GridView ID="GridView1" Width="100%" Height="180px" runat="server"
AutoGenerateColumns="False" AllowPaging="True" DataKeyNames="empLoginId"
OnRowDeleting="adminDelete" PageSize="5"
onselectedindexchanged="GridView1_SelectedIndexChanged"
OnPageIndexChanging="GridView1_PageIndexChanging" >
<Columns>
<asp:BoundField DataField="empFname" HeaderText="Employee First Name"
SortExpression="empFname" />
<asp:BoundField DataField="empLname" HeaderText="Employee Last Name"
SortExpression="empLname" />
<asp:BoundField DataField="pwd" HeaderText="Password" SortExpression="pwd" />
<asp:BoundField DataField="empRole" HeaderText="Employee Role"
SortExpression="empRole" />
<asp:CommandField ShowSelectButton="True" SelectText="Edit" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
On the .aspx.cs page -
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int rowIndex = GridView1.SelectedIndex;
string strValue = GridView1.DataKeys[rowIndex].Value.ToString();
using (SqlConnection con1 = new SqlConnection("server=.\\SQLEXPRESS;database=dB;Integrated Security=SSPI;"))
{
con1.Open();
using (SqlCommand command = con1.CreateCommand())
{
command.CommandText = "SELECT empFname,empLname,pwd,empTitle,city,empEmail,empType,empRole,dept FROM [emp] WHERE ( [empLoginId] = " + strValue + " ) ";
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
TextBox5.Text = reader["empFname"].ToString().ToUpper();
TextBox20.Text = reader["empLname"].ToString().ToUpper();
TextBox11.Text = strValue.ToUpper();
TextBox13.Text = reader["pwd"].ToString();
TextBox14.Text = reader["pwd"].ToString();
TextBox15.Text = reader["empTitle"].ToString().ToUpper();
TextBox16.Text = reader["dept"].ToString().ToUpper();
TextBox17.Text = reader["empEmail"].ToString();
}
}
con1.Close();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1_SelectedIndexChanged(sender, e);
}
protected void adminDelete(object sender, GridViewDeleteEventArgs e)
{
int rowIndex = GridView1.SelectedIndex;
string strValue = GridView1.DataKeys[e.RowIndex].Values["empLoginId"].ToString();
SqlConnection con1 = new SqlConnection("server=.\\SQLEXPRESS;database=dB;Integrated Security=SSPI;");
con1.Open();
SqlCommand cmd = new SqlCommand("delete from emp where empLoginId=" + strValue, con1);
int result = cmd.ExecuteNonQuery();
con1.Close();
if (result == 1)
{
Label4.Visible = true;
Label4.ForeColor = Color.Red;
Label4.Text = strValue + "'s details deleted successfully";
}
else
{
Label4.Visible = false;
}
}
I can''t seem to figure out where I am going wrong! Please help me out!
instead of this:-
string strValue = GridView1.DataKeys[e.RowIndex].Values["empLoginId"].ToString();
try this
string strValue =GridView1.DataKeys[index].Value.ToString()
instead of this:
string strValue = GridView1.DataKeys[e.RowIndex].Values["empLoginId"].ToString();
try this
string strValue = GridView1.DataKeys[e.RowIndex].Value.ToString();
See this link, may help ful to u.
Row updating event in gridview ASP.NET[^]
thank u.
这篇关于在c#中从网格视图编辑和删除时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!