GridView控件编辑功能的实现?报错!怎么修改?

longwenbin0614 2012-03-21 03:25:27
前台代码:
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="HouseId" onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="HouseId" HeaderText="HouseId" InsertVisible="False"
ReadOnly="True" SortExpression="HouseId" />
<asp:BoundField DataField="HouseArea" HeaderText="HouseArea"
SortExpression="HouseArea" />
<asp:BoundField DataField="HouseShape" HeaderText="HouseShape"
SortExpression="HouseShape" />
<asp:BoundField DataField="HouseFloor" HeaderText="HouseFloor"
SortExpression="HouseFloor" />
<asp:BoundField DataField="HouseDecoration" HeaderText="HouseDecoration"
SortExpression="HouseDecoration" />
<asp:BoundField DataField="HouseLocation" HeaderText="HouseLocation"
SortExpression="HouseLocation" />
<asp:BoundField DataField="HousePrice" HeaderText="HousePrice"
SortExpression="HousePrice" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:HouseConnectionString %>"
SelectCommand="SELECT * FROM [HouseInfo]"
UpdateCommand="Update [HouseInfo] SET HouseArea=@HouseArea,HouseShape=@HouseShape,HouseFloor=@HouseFloor,HouseDecoration=@HouseDecoration,HouseLocation=@HouseLocation,HousePrice=@HousePrice WHERE (HouseId=@HouseId)"
></asp:SqlDataSource>
<asp:Button ID="Button3" runat="server" Font-Size="9pt" Text="取消" OnClick="Button1_Click" />
<asp:Button ID="Button4" runat="server" Font-Size="9pt" Text="删除" OnClick="Button2_Click" />
</div>
</form>
</body>

后台代码:
public partial class Housemain : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{


if (!IsPostBack)
{
bind();
}
}
public void bind()
{
SqlConnection sqlcon;
string strCon = "Data Source=(local);Database=House;Uid=sa;Pwd=''";
string sqlstr = "select * from HouseInfo";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "HouseInfo");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "HouseId" };
GridView1.DataBind();
sqlcon.Close();
}

protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
cbox.Checked = false;
}

}

protected void Button2_Click(object sender, EventArgs e)
{
try {
SqlConnection sqlcon;
string strCon = "Data Source=(local);Database=House;Uid=sa;Pwd=''";
sqlcon = new SqlConnection(strCon);
SqlCommand sqlcom;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{

string sqlstr = "delete from HouseInfo where HouseId='" + GridView1.DataKeys[i].Value + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();

sqlcon.Close();
}
}
bind();
}catch (Exception ex) {
Console.Write("<script>javascript:alert('不能删除');</script>",ex);
Response.Write("<script>javascript:alert('不能删除,有外键约束');</script>");

}
}





protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
this.bind();

}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection sqlcon;
string strCon = "Data Source=(local);Database=House;Uid=sa;Pwd=''";
sqlcon = new SqlConnection(strCon);
SqlCommand sqlcom;
string sqlstr = "update HouseInfo set HouseId='"
+ GridView1.Rows[e.RowIndex].Cells[0].ToString().Trim() + "',HouseArea='"
+ GridView1.Rows[e.RowIndex].Cells[1].ToString().Trim() + "',HouseShape='"
+ GridView1.Rows[e.RowIndex].Cells[2].ToString().Trim() + "',HouseFloor='"
+ GridView1.Rows[e.RowIndex].Cells[3].ToString().Trim() + "',HouseDecoration='"
+ GridView1.Rows[e.RowIndex].Cells[4].ToString().Trim() + "',HouseLocation='"
+ GridView1.Rows[e.RowIndex].Cells[5].ToString().Trim() + "',HousePrice='"
+ GridView1.Rows[e.RowIndex].Cells[6].ToString().Trim() + "' where HoueseId='"
+ GridView1.DataKeys[e.RowIndex].Values.ToString() + "'";

sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
this.GridView1.EditIndex = -1;
bind();
}
}
sqlcom.ExecuteNonQuery();报错 列名 'HoueseId' 无效。 怎么修改?
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunylf 2012-03-24
  • 打赏
  • 举报
回复
字段名拼寫錯誤啊.HoueseId ? HouseId 前后不一致.
huijunliang 2012-03-24
  • 打赏
  • 举报
回复
A351312634 2012-03-21
  • 打赏
  • 举报
回复
string sqlstr = "update HouseInfo set HouseId='"
+ GridView1.Rows[e.RowIndex].Cells[0].ToString().Trim() + "',HouseArea='"
+ GridView1.Rows[e.RowIndex].Cells[1].ToString().Trim() + "',HouseShape='"
+ GridView1.Rows[e.RowIndex].Cells[2].ToString().Trim() + "',HouseFloor='"
+ GridView1.Rows[e.RowIndex].Cells[3].ToString().Trim() + "',HouseDecoration='"
+ GridView1.Rows[e.RowIndex].Cells[4].ToString().Trim() + "',HouseLocation='"
+ GridView1.Rows[e.RowIndex].Cells[5].ToString().Trim() + "',HousePrice='"
+ GridView1.Rows[e.RowIndex].Cells[6].ToString().Trim() + "' where HoueseId='"
+ GridView1.DataKeys[e.RowIndex].Values.ToString() + "'";
很明显的错误。哎

longwenbin0614 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rock870210 的回复:]
HouseId是不是int类型,是int类型的不需要加单引号,其他数字类型,无论是否浮点类型都不加单引号,自己修改吧
[/Quote]
把单引号全部去掉了 现在出现新问题,
数字 名称 'System.Web.UI.WebControls' 包含的前缀数目超过了最大值。最大值为 3。
怎么改呢?
Rock870210 2012-03-21
  • 打赏
  • 举报
回复
HoueseId 列名无效,这个错误非常明显,检查表中是否有这个字段,特别是 拼写错误
Rock870210 2012-03-21
  • 打赏
  • 举报
回复
HouseId是不是int类型,是int类型的不需要加单引号,其他数字类型,无论是否浮点类型都不加单引号,自己修改吧
longwenbin0614 2012-03-21
  • 打赏
  • 举报
回复
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
里面的sqlcom.ExecuteNonQuery();报错 编辑更新不了

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧