前台代码:
<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' 无效。 怎么修改?
<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' 无效。 怎么修改?
里面的sqlcom.ExecuteNonQuery();报错 编辑更新不了
数字 名称 'System.Web.UI.WebControls' 包含的前缀数目超过了最大值。最大值为 3。
怎么改呢?
+ 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() + "'";
很明显的错误。哎