下边一段代码是按照教材上抄下来的<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %><!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 runat="server">
<script runat=server>
OleDbConnection Myconn;
public void Page_Load(Object sender, EventArgs e)
{
// 连接语句
string Myconnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "..\\data\\score.mdb;";
Myconn = new OleDbConnection(Myconnstring);
Myconn.Open(); if (!Page.IsPostBack)
{
BindGrid();
}
}
//创建当前数据的默认视图
ICollection CreateTable()
{
string strsel = "select * form score";
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strsel, Myconn);
DataSet ds = new DataSet();
MyAdapter.Fill(ds, "Table1");
return ds.Tables["Table1"].DefaultView;
}
//处理Edit命令
public void DataGrid_EditCommand(Object sender, DataGridCommandEventArgs e)
{
Table1.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
//处理Cancel命令
public void DataGird_CancelCommand(Object sender, DataGridCommandEventArgs e)
{
Table1.EditItemIndex = -1;
BindGrid();
}
//处理Update命令
public void DataGrid_UpdateCommand(Object sender, DataGridCommandEventArgs e)
{
//取得已更新数据
string strname = e.Item.Cells[1].Text;
int intmath = Int32.Parse(((TextBox)e.Item.Cells[2].Controls[0]).Text);
int intenglish = Int32.Parse(((TextBox)e.Item.Cells[3].Controls[0]).Text);
int intchinese = Int32.Parse(((TextBox)e.Item.Cells[4].Controls[0]).Text);
//更新数据库
string strupdate="Update Table1 set s_Math="+intmath+",s_English="+intenglish+",s_Chinese="+intchinese+" Where s_name='"+strname+"'";
OleDbCommand Mycommand = new OleDbCommand(strupdate, Myconn);
Mycommand.ExecuteNonQuery(); Table1.EditItemIndex = -1;
BindGrid();
}
</script>
<title>EditCommandColumn</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataGrid ID="Table1" runat=server HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="#addeae" AutoGenerateColumns=false OnEditCommand="DataGrid_EditCommand" OnCancelCommand="DataGrid_CancelCommand" OnUpdateCommand="DataGrid_UpdateCommand">
<Columns>
<asp:EditCommandColumn HeaderText="Play area" EditText="Edit" CancelText="Cancel" UpdateText="Update" ButtonType="PushButton"/>
<asp:BoundColumn HeaderText="Name" DataField="s_name" ReadOnly=true/>
<asp:BoundColumn HeaderText="Math" DataField="s_Math"/>
<asp:BoundColumn HeaderText="English" DataField="s_English"/>
<asp:BoundColumn HeaderText="Chinese" DataField="s_Chinese"/>
</Columns>
</asp:DataGrid>
</div>
</form>
</body>
</html>出错提示如下:编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。编译器错误信息: CS0103: 当前上下文中不存在名称“BindGrid”源错误:行 18: if (!Page.IsPostBack)
行 19: {
行 20: BindGrid();
行 21: }我自己搜了一个下午了,也没找到问题所在,麻烦指点一下,非常感谢
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %><!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 runat="server">
<script runat=server>
OleDbConnection Myconn;
public void Page_Load(Object sender, EventArgs e)
{
// 连接语句
string Myconnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "..\\data\\score.mdb;";
Myconn = new OleDbConnection(Myconnstring);
Myconn.Open(); if (!Page.IsPostBack)
{
BindGrid();
}
}
//创建当前数据的默认视图
ICollection CreateTable()
{
string strsel = "select * form score";
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strsel, Myconn);
DataSet ds = new DataSet();
MyAdapter.Fill(ds, "Table1");
return ds.Tables["Table1"].DefaultView;
}
//处理Edit命令
public void DataGrid_EditCommand(Object sender, DataGridCommandEventArgs e)
{
Table1.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
//处理Cancel命令
public void DataGird_CancelCommand(Object sender, DataGridCommandEventArgs e)
{
Table1.EditItemIndex = -1;
BindGrid();
}
//处理Update命令
public void DataGrid_UpdateCommand(Object sender, DataGridCommandEventArgs e)
{
//取得已更新数据
string strname = e.Item.Cells[1].Text;
int intmath = Int32.Parse(((TextBox)e.Item.Cells[2].Controls[0]).Text);
int intenglish = Int32.Parse(((TextBox)e.Item.Cells[3].Controls[0]).Text);
int intchinese = Int32.Parse(((TextBox)e.Item.Cells[4].Controls[0]).Text);
//更新数据库
string strupdate="Update Table1 set s_Math="+intmath+",s_English="+intenglish+",s_Chinese="+intchinese+" Where s_name='"+strname+"'";
OleDbCommand Mycommand = new OleDbCommand(strupdate, Myconn);
Mycommand.ExecuteNonQuery(); Table1.EditItemIndex = -1;
BindGrid();
}
</script>
<title>EditCommandColumn</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataGrid ID="Table1" runat=server HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="#addeae" AutoGenerateColumns=false OnEditCommand="DataGrid_EditCommand" OnCancelCommand="DataGrid_CancelCommand" OnUpdateCommand="DataGrid_UpdateCommand">
<Columns>
<asp:EditCommandColumn HeaderText="Play area" EditText="Edit" CancelText="Cancel" UpdateText="Update" ButtonType="PushButton"/>
<asp:BoundColumn HeaderText="Name" DataField="s_name" ReadOnly=true/>
<asp:BoundColumn HeaderText="Math" DataField="s_Math"/>
<asp:BoundColumn HeaderText="English" DataField="s_English"/>
<asp:BoundColumn HeaderText="Chinese" DataField="s_Chinese"/>
</Columns>
</asp:DataGrid>
</div>
</form>
</body>
</html>出错提示如下:编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。编译器错误信息: CS0103: 当前上下文中不存在名称“BindGrid”源错误:行 18: if (!Page.IsPostBack)
行 19: {
行 20: BindGrid();
行 21: }我自己搜了一个下午了,也没找到问题所在,麻烦指点一下,非常感谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货