<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="Acme" %><html><script language="C#" runat="server"> SqlConnection myConnection; protected void Page_Load(Object Src, EventArgs E)
{
myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI"); if (!IsPostBack)
BindGrid();
} public void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
} public void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = -1;
BindGrid();
} public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
String updateCmd = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = @Phone, "
+ "address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id"; SqlCommand myCommand = new SqlCommand(updateCmd, myConnection); myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
myCommand.Parameters.Add(new SqlParameter("@LName", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@FName", SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@Phone", SqlDbType.NChar, 12));
myCommand.Parameters.Add(new SqlParameter("@Address", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@City", SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@State", SqlDbType.NChar, 2));
myCommand.Parameters.Add(new SqlParameter("@Zip", SqlDbType.NChar, 5));
myCommand.Parameters.Add(new SqlParameter("@Contract", SqlDbType.NVarChar,1)); myCommand.Parameters["@Id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex]; String[] cols = {"@Id","@LName","@FName","@Phone","@Address","@City","@State","@Zip","@Contract"};
Message.InnerHtml = ""; int numCols = e.Item.Cells.Count;
for (int i=2; i<numCols-1; i++) //skip first, second and last column
{
String colvalue =((System.Web.UI.WebControls.TextBox)
e.Item.Cells[i].Controls[0]).Text;
// check for invalid values
switch (cols[i-1])
{
case "@LName":
if ( !InputValidator.IsValidAnsiName(colvalue) )
{
Message.InnerHtml += "ERROR: Last Name - " + InputValidator.AnsiNameErrorString + "<br>";
}
break;
case "@FName":
if ( !InputValidator.IsValidAnsiName(colvalue) )
{
Message.InnerHtml += "ERROR: First Name - " + InputValidator.AnsiNameErrorString + "<br>";
}
break;
case "@Phone":
if ( !InputValidator.IsValidAnsiPhoneNumber(colvalue) )
{
Message.InnerHtml += "ERROR: Phone - " + InputValidator.AnsiPhoneErrorString + "<br>";
}
break;
case "@Address":
if ( !InputValidator.IsValidAnsiAddress(colvalue) )
{
Message.InnerHtml += "ERROR: Address - " + InputValidator.AnsiAddressErrorString + "<br>";
}
break;
case "@City":
if ( !InputValidator.IsValidAnsiCityOrState(colvalue) )
{
Message.InnerHtml += "ERROR: City - " + InputValidator.AnsiCityStateErrorString + "<br>";
}
break;
case "@State":
if ( !InputValidator.IsValidAnsiTwoCharacterState(colvalue) )
{
Message.InnerHtml += "ERROR: State - " + InputValidator.AnsiTwoCharacterStateErrorString + "<br>";
}
break;
case "@Zip":
if ( !InputValidator.IsValidFiveDigitZipCode(colvalue) )
{
Message.InnerHtml += "ERROR: Zip Code - " + InputValidator.AnsiBasicZipCodeErrorString + "<br>";
}
break;
} // check for null values in required fields
if (i<6 && colvalue == "")
{
Message.InnerHtml += "ERROR: Null values not allowed for " + cols[i-1] + "<br>";
} myCommand.Parameters[cols[i-1]].Value = colvalue;
}
if ( Message.InnerHtml != "" )
{
Message.Style["color"] = "red";
return;
} //append last row, converting true/false values to 0/1
if (String.Compare(((System.Web.UI.WebControls.TextBox)
e.Item.Cells[numCols-1].Controls[0]).Text, "true", true, CultureInfo.InvariantCulture)==0)
myCommand.Parameters["@Contract"].Value = "1";
else
myCommand.Parameters["@Contract"].Value = "0"; myCommand.Connection.Open(); try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>Record Updated</b><br>" + updateCmd;
MyDataGrid.EditItemIndex = -1;
}
catch (SqlException exc)
{
if (exc.Number == 2627)
Message.InnerHtml = "ERROR: A record already exists with the same primary key";
else
Message.InnerHtml = "ERROR: Could not update record, please ensure the fields are correctly filled out";
Message.Style["color"] = "red";
} myCommand.Connection.Close(); BindGrid();
} public void BindGrid()
{
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection); DataSet ds = new DataSet();
myCommand.Fill(ds, "Authors"); MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;
MyDataGrid.DataBind();
}</script><body style="font: 10pt verdana"> <form runat="server"> <h3><font face="Verdana">Updating a Row of Data</font></h3> <span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/><p> <ASP:DataGrid id="MyDataGrid" runat="server"
Width="800"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
DataKeyField="au_id"
> <Columns>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false"/>
</Columns> </ASP:DataGrid> </form></body>
</html>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="Acme" %><html><script language="C#" runat="server"> SqlConnection myConnection; protected void Page_Load(Object Src, EventArgs E)
{
myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI"); if (!IsPostBack)
BindGrid();
} public void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
} public void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = -1;
BindGrid();
} public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
String updateCmd = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = @Phone, "
+ "address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id"; SqlCommand myCommand = new SqlCommand(updateCmd, myConnection); myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
myCommand.Parameters.Add(new SqlParameter("@LName", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@FName", SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@Phone", SqlDbType.NChar, 12));
myCommand.Parameters.Add(new SqlParameter("@Address", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@City", SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@State", SqlDbType.NChar, 2));
myCommand.Parameters.Add(new SqlParameter("@Zip", SqlDbType.NChar, 5));
myCommand.Parameters.Add(new SqlParameter("@Contract", SqlDbType.NVarChar,1)); myCommand.Parameters["@Id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex]; String[] cols = {"@Id","@LName","@FName","@Phone","@Address","@City","@State","@Zip","@Contract"};
Message.InnerHtml = ""; int numCols = e.Item.Cells.Count;
for (int i=2; i<numCols-1; i++) //skip first, second and last column
{
String colvalue =((System.Web.UI.WebControls.TextBox)
e.Item.Cells[i].Controls[0]).Text;
// check for invalid values
switch (cols[i-1])
{
case "@LName":
if ( !InputValidator.IsValidAnsiName(colvalue) )
{
Message.InnerHtml += "ERROR: Last Name - " + InputValidator.AnsiNameErrorString + "<br>";
}
break;
case "@FName":
if ( !InputValidator.IsValidAnsiName(colvalue) )
{
Message.InnerHtml += "ERROR: First Name - " + InputValidator.AnsiNameErrorString + "<br>";
}
break;
case "@Phone":
if ( !InputValidator.IsValidAnsiPhoneNumber(colvalue) )
{
Message.InnerHtml += "ERROR: Phone - " + InputValidator.AnsiPhoneErrorString + "<br>";
}
break;
case "@Address":
if ( !InputValidator.IsValidAnsiAddress(colvalue) )
{
Message.InnerHtml += "ERROR: Address - " + InputValidator.AnsiAddressErrorString + "<br>";
}
break;
case "@City":
if ( !InputValidator.IsValidAnsiCityOrState(colvalue) )
{
Message.InnerHtml += "ERROR: City - " + InputValidator.AnsiCityStateErrorString + "<br>";
}
break;
case "@State":
if ( !InputValidator.IsValidAnsiTwoCharacterState(colvalue) )
{
Message.InnerHtml += "ERROR: State - " + InputValidator.AnsiTwoCharacterStateErrorString + "<br>";
}
break;
case "@Zip":
if ( !InputValidator.IsValidFiveDigitZipCode(colvalue) )
{
Message.InnerHtml += "ERROR: Zip Code - " + InputValidator.AnsiBasicZipCodeErrorString + "<br>";
}
break;
} // check for null values in required fields
if (i<6 && colvalue == "")
{
Message.InnerHtml += "ERROR: Null values not allowed for " + cols[i-1] + "<br>";
} myCommand.Parameters[cols[i-1]].Value = colvalue;
}
if ( Message.InnerHtml != "" )
{
Message.Style["color"] = "red";
return;
} //append last row, converting true/false values to 0/1
if (String.Compare(((System.Web.UI.WebControls.TextBox)
e.Item.Cells[numCols-1].Controls[0]).Text, "true", true, CultureInfo.InvariantCulture)==0)
myCommand.Parameters["@Contract"].Value = "1";
else
myCommand.Parameters["@Contract"].Value = "0"; myCommand.Connection.Open(); try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>Record Updated</b><br>" + updateCmd;
MyDataGrid.EditItemIndex = -1;
}
catch (SqlException exc)
{
if (exc.Number == 2627)
Message.InnerHtml = "ERROR: A record already exists with the same primary key";
else
Message.InnerHtml = "ERROR: Could not update record, please ensure the fields are correctly filled out";
Message.Style["color"] = "red";
} myCommand.Connection.Close(); BindGrid();
} public void BindGrid()
{
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Authors", myConnection); DataSet ds = new DataSet();
myCommand.Fill(ds, "Authors"); MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;
MyDataGrid.DataBind();
}</script><body style="font: 10pt verdana"> <form runat="server"> <h3><font face="Verdana">Updating a Row of Data</font></h3> <span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/><p> <ASP:DataGrid id="MyDataGrid" runat="server"
Width="800"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
DataKeyField="au_id"
> <Columns>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false"/>
</Columns> </ASP:DataGrid> </form></body>
</html>
解决方案 »
- 在ASP.NET中怎么判断获取的txt文件的大小..谢谢
- 关于CSDN这个网站的一些疑惑
- [请教]asp.net(c#)传送xml
- 提供程序无法确定 Object 值。例如,该行刚刚创建,未提供 Object 列的默认值,并且使用者尚未设置新 Object 值。急!!!!!!
- 能否在ASP.Net调用exe
- 关于google自定义搜索引擎 页面问题
- 关于iframe随加载页面大小而改变时出现的错误提示
- 页面布局的问题,大家来看看,怎么布局较好
- 水晶报表中出现登陆失败的错误?救急!!
- 为什么在WINDOWS2003中不能安装SQL2000呀.
- 第一个程序就出错, 大家帮忙看一下,带带新人~~
- [求助]请教关于初学者如果学asp.net的学习方法的问题!!
建议你先看看ADO.Net的书,内容不多的
一楼的程序不怎么看的懂。里面的语句倒是没问题。。
关键的是那些控件怎么设置?一楼那一大段程序是覆盖页面HTML吗?
服务器应用程序不可用
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。 管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。 aspnet_wp.exe (PID: 1436) was recycled because memory consumption exceeded the 75 MB (60 percent of available RAM). 是不是内存少了?