将Grdview的数据绑定到数据库中的实现 GridView绑定了一个数据库添加行之后得到的gridview,重新将gridview 绑定到数据库中去 用objectDateSouce如何实现希望提供前台和后台代码谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>MSPetShop4.Product</title></head><body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="添加空行" OnClick="Button1_Click1" /> <asp:Button ID="Button2" runat="server" OnClick="Button2_Click1" Text="保存该行" /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" DataKeyNames="id"> <Columns> <asp:TemplateField HeaderText="ProductId"> <ItemTemplate> <asp:TextBox ID="Label1" runat="server" Text='<%# Bind("ProductId")%>'></asp:TextBox> </ItemTemplate> <EditItemTemplate> <asp:Label ID="Text1" runat="server" Text='<%# Bind("ProductId")%>'></asp:Label> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="CategoryId"> <ItemTemplate> <asp:TextBox ID="Label2" runat="server" Text='<%# Bind("CategoryId")%>'></asp:TextBox> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Text2" runat="server" Text='<%# Bind("CategoryId")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:TextBox ID="Label3" runat="server" Text='<%# Bind("Name")%>'></asp:TextBox> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Text3" runat="server" Text='<%# Bind("Name")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Descn"> <ItemTemplate> <asp:TextBox ID="Label4" runat="server" Text='<%# Bind("Descn")%>'></asp:TextBox> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Text4" runat="server" Text='<%# Bind("Descn")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Image"> <ItemTemplate> <asp:TextBox ID="Label5" runat="server" Text='<%# Bind("Image")%>'></asp:TextBox> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="Text5" runat="server" Text='<%# Bind("Image")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="True" /> <asp:CommandField ShowDeleteButton="True" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MSPetShop4ConnectionString %>" SelectCommand="SELECT * FROM [Product]" ></asp:SqlDataSource> </div> </form></body></html>using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;using System.Collections.Generic;public partial class _Default : System.Web.UI.Page{ SqlConnection sqlcon; SqlCommand sqlcom; string strCon = "Data Source=PC-200910232113;Initial Catalog=MSPetShop4;Integrated Security=sspi"; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind(); } } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; Bind(); } //删除 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string sqlstr = "delete from Product where ProductId='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; sqlcon = new SqlConnection(strCon); sqlcom = new SqlCommand(sqlstr, sqlcon); sqlcon.Open(); sqlcom.ExecuteNonQuery(); sqlcon.Close(); Bind(); } //更新 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string sqlstr = "update Product set CategoryId=@CategoryId,Name=@Name,Descn=@Descn,Image=@Image where ProductId =@ProductId"; SqlParameter[] parm = new SqlParameter[] { new SqlParameter("@ProductId",SqlDbType.VarChar,10), new SqlParameter("@CategoryId",SqlDbType.VarChar,10), new SqlParameter("@Name",SqlDbType.VarChar,80), new SqlParameter("@Descn",SqlDbType.VarChar,255), new SqlParameter("@Image",SqlDbType.VarChar,80), }; List<TextBox> lttb = new List<TextBox>(); for (int i = 2; i <= 5; i++) { TextBox tb = (TextBox)GridView1.Rows[e.RowIndex].FindControl("Text" + i.ToString()); lttb.Add(tb); } Label label = (Label)GridView1.Rows[e.RowIndex].FindControl("Text1"); parm[0].Value = label.Text; for (int i = 0; i < parm.Length - 1; i++) { if (lttb[i] != null) { parm[i + 1].Value = lttb[i].Text; } } sqlcon = new SqlConnection(strCon); sqlcon.Open(); sqlcom = new SqlCommand(sqlstr, sqlcon); foreach (SqlParameter par in parm) { sqlcom.Parameters.Add(par); } sqlcom.ExecuteNonQuery(); sqlcon.Close(); GridView1.EditIndex = -1; Bind(); } //取消 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; Bind(); } public void Bind() { string sqlstr = "select * from Product"; sqlcon = new SqlConnection(strCon); SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); DataSet myds = new DataSet(); sqlcon.Open(); myda.Fill(myds, "Product"); GridView1.DataSource = myds; GridView1.DataKeyNames = new string[] { "ProductId" }; GridView1.DataBind(); sqlcon.Close(); } //添加行 protected void BindTestData() { DataTable dt1 = new DataTable("Table1"); dt1.Columns.Add("ID"); dt1.Columns.Add("ProductId"); dt1.Columns.Add("CategoryId"); dt1.Columns.Add("Name"); dt1.Columns.Add("Descn"); dt1.Columns.Add("Image"); this.GridView1.DataSource = dt1; this.GridView1.DataBind(); } protected DataTable GetDataFromGrid() { DataTable dt1 = new DataTable("Table1"); dt1.Columns.Add("ID"); dt1.Columns.Add("ProductId"); dt1.Columns.Add("CategoryId"); dt1.Columns.Add("Name"); dt1.Columns.Add("Descn"); dt1.Columns.Add("Image"); for (int i = 0; i < GridView1.Rows.Count; i++) { GridViewRow gRow = GridView1.Rows[i]; DataRow newRow = dt1.NewRow(); newRow[0] = GridView1.DataKeys[i].Value; newRow[1] = ((TextBox)gRow.FindControl("Label1")).Text; newRow[2] = ((TextBox)gRow.FindControl("Label2")).Text; newRow[3] = ((TextBox)gRow.FindControl("Label3")).Text; newRow[4] = ((TextBox)gRow.FindControl("Label4")).Text; newRow[5] = ((TextBox)gRow.FindControl("Label5")).Text; dt1.Rows.Add(newRow); } dt1.AcceptChanges(); return dt1; } protected void Button1_Click1(object sender, EventArgs e) { DataTable dt = this.GetDataFromGrid(); DataRow newRow = dt.NewRow(); dt.Rows.Add(newRow); this.GridView1.DataSource = dt; this.GridView1.DataBind(); } protected void Button2_Click1(object sender, EventArgs e) { DataTable dt = this.GetDataFromGrid(); foreach (DataRow row in dt.Rows) { if (row["ID"] != null) { //更新该行记录到数据库 } else { //插入该行记录到数据库 } } } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { }} 求教关于C#定义一个类的成员、方法、和属性 怎么在同一个 socket 里实现多个用户同时与 服务端 交互 C# 一个基本没有需求的程序。 求一个简单的正则表达式 C#判断XML中节点是否有子节点 如何在论坛中知道用户登录状态 知道了进程,如果最大化那个进程的窗口 怎样在wpf中实现对数据库的查询并在datagrid中显示出查询数据 使用udpclient,在接收到消息的时候触发的事件时什么 DataGrid在编辑状态下TextBox是比较难看的,现在我想改变它的样式? winform 有没有进程结束类似的事件啊 哪位能解决sqlhepler类 修改为com接口的警告问题?
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>MSPetShop4.Product</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="添加空行" OnClick="Button1_Click1" />
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click1" Text="保存该行" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting"
OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" DataKeyNames="id">
<Columns>
<asp:TemplateField HeaderText="ProductId">
<ItemTemplate>
<asp:TextBox ID="Label1" runat="server" Text='<%# Bind("ProductId")%>'></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="Text1" runat="server" Text='<%# Bind("ProductId")%>'></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="CategoryId">
<ItemTemplate>
<asp:TextBox ID="Label2" runat="server" Text='<%# Bind("CategoryId")%>'></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="Text2" runat="server" Text='<%# Bind("CategoryId")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox ID="Label3" runat="server" Text='<%# Bind("Name")%>'></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="Text3" runat="server" Text='<%# Bind("Name")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Descn">
<ItemTemplate>
<asp:TextBox ID="Label4" runat="server" Text='<%# Bind("Descn")%>'></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="Text4" runat="server" Text='<%# Bind("Descn")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:TextBox ID="Label5" runat="server" Text='<%# Bind("Image")%>'></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="Text5" runat="server" Text='<%# Bind("Image")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MSPetShop4ConnectionString %>"
SelectCommand="SELECT * FROM [Product]" ></asp:SqlDataSource>
</div>
</form>
</body>
</html>using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=PC-200910232113;Initial Catalog=MSPetShop4;Integrated Security=sspi"; protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
} protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
//删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstr = "delete from Product where ProductId='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
Bind();
}
//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string sqlstr = "update Product set CategoryId=@CategoryId,Name=@Name,Descn=@Descn,Image=@Image where ProductId =@ProductId"; SqlParameter[] parm = new SqlParameter[]
{
new SqlParameter("@ProductId",SqlDbType.VarChar,10),
new SqlParameter("@CategoryId",SqlDbType.VarChar,10),
new SqlParameter("@Name",SqlDbType.VarChar,80),
new SqlParameter("@Descn",SqlDbType.VarChar,255),
new SqlParameter("@Image",SqlDbType.VarChar,80),
};
List<TextBox> lttb = new List<TextBox>(); for (int i = 2; i <= 5; i++)
{
TextBox tb = (TextBox)GridView1.Rows[e.RowIndex].FindControl("Text" + i.ToString());
lttb.Add(tb);
}
Label label = (Label)GridView1.Rows[e.RowIndex].FindControl("Text1");
parm[0].Value = label.Text;
for (int i = 0; i < parm.Length - 1; i++)
{
if (lttb[i] != null)
{
parm[i + 1].Value = lttb[i].Text;
}
}
sqlcon = new SqlConnection(strCon);
sqlcon.Open();
sqlcom = new SqlCommand(sqlstr, sqlcon); foreach (SqlParameter par in parm)
{
sqlcom.Parameters.Add(par);
}
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
Bind();
}
//取消
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Bind();
}
public void Bind()
{
string sqlstr = "select * from Product";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "Product");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "ProductId" };
GridView1.DataBind();
sqlcon.Close();
}
//添加行
protected void BindTestData()
{
DataTable dt1 = new DataTable("Table1");
dt1.Columns.Add("ID");
dt1.Columns.Add("ProductId");
dt1.Columns.Add("CategoryId");
dt1.Columns.Add("Name");
dt1.Columns.Add("Descn");
dt1.Columns.Add("Image");
this.GridView1.DataSource = dt1;
this.GridView1.DataBind();
}
protected DataTable GetDataFromGrid()
{
DataTable dt1 = new DataTable("Table1");
dt1.Columns.Add("ID");
dt1.Columns.Add("ProductId");
dt1.Columns.Add("CategoryId");
dt1.Columns.Add("Name");
dt1.Columns.Add("Descn");
dt1.Columns.Add("Image");
for (int i = 0; i < GridView1.Rows.Count; i++)
{
GridViewRow gRow = GridView1.Rows[i];
DataRow newRow = dt1.NewRow();
newRow[0] = GridView1.DataKeys[i].Value;
newRow[1] = ((TextBox)gRow.FindControl("Label1")).Text;
newRow[2] = ((TextBox)gRow.FindControl("Label2")).Text;
newRow[3] = ((TextBox)gRow.FindControl("Label3")).Text;
newRow[4] = ((TextBox)gRow.FindControl("Label4")).Text;
newRow[5] = ((TextBox)gRow.FindControl("Label5")).Text;
dt1.Rows.Add(newRow);
}
dt1.AcceptChanges();
return dt1;
} protected void Button1_Click1(object sender, EventArgs e)
{
DataTable dt = this.GetDataFromGrid();
DataRow newRow = dt.NewRow();
dt.Rows.Add(newRow);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void Button2_Click1(object sender, EventArgs e)
{
DataTable dt = this.GetDataFromGrid();
foreach (DataRow row in dt.Rows)
{
if (row["ID"] != null)
{
//更新该行记录到数据库
}
else
{
//插入该行记录到数据库
}
}
} protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{ }
}