为什么我update后不能刷新?反而全屏白色?
private void FillDataGrid()
{
// 创建新的dataset 包含类别纪录
DataSet dsNorthwind = new DataSet("Employees");
// 从数据库中重新获得纪录,填充 dataset
daNorthwind.Fill(dsNorthwind);
// 设置DataGrid的DataSource 属性
dgNorthwind.DataSource = dsNorthwind.Tables[0].DefaultView;
// 绑定
dgNorthwind.DataBind();
}
private void calHire_SelectionChanged(object sender, System.EventArgs e)
{
// 如果选错日期会出错,必须选今天以前的日期。
if (calHire.SelectedDate <= DateTime.Today)
{
// 创建dataset 包含新纪录
DataSet dsTemp = new DataSet();
dsTemp.ReadXml(@"E:\bookcode\asp.net数据库入门\datastores\Employees.xml");
// 插入新行
DataRow r = dsTemp.Tables[0].NewRow();
r["LastName"] = "Ferracchiati";
r["FirstName"] = "Fabio C.";
r["HireDate"] = Convert.ToDateTime(calHire.SelectedDate);
// 插入一行 dataset的rows集合
dsTemp.Tables[0].Rows.Add(r);
// 使用临时dataset更新数据集
daNorthwind.Update(dsTemp, "EMPLOYEE");
// 刷新data grid 现实新纪录
FillDataGrid();
}
else
Response.Write("Hire date can't be in the future!");
Response.End();
}
问题点数:20、回复次数:3Top
1 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2005-01-27 01:02:43 得分 0
纪录已经插入,数据库中可以看出来,但是postback后全屏白色,无HTML代码。
全部代码如下:
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.Data.SqlClient" %>
<html>
<head>
<title>Inserting Calendar and XML Data</title>
</head>
<body>
<form id="Form1" runat="server" method="post">
<asp:label id="lblRecords" runat="server" />
<table id="Table1"
style="Z-INDEX: 101; LEFT: 7px; POSITION: absolute; TOP: 7px"
cellSpacing="0" cellPadding="0" width="300" border="0">
<tr>
<td style="WIDTH: 681" colSpan="2">
<asp:DataGrid id="dgNorthwind" runat="server" Width="479"
Height="191" BorderColor="#CC9966" BorderWidth="1"
BorderStyle="None" BackColor="White" CellPadding="4"
DataKeyField="EmployeeID" AutoGenerateColumns="False" >
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66" />
<ItemStyle ForeColor="#330099" BackColor="White" />
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000" />
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC" />
<Columns>
<asp:BoundColumn DataField="FirstName" HeaderText="First Name" />
<asp:BoundColumn DataField="LastName" HeaderText="Last Name" />
<asp:BoundColumn DataField="HireDate" HeaderText="Hire Date" />
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC" />
</asp:DataGrid>
</td>
</tr>
<tr>
<td style="WIDTH: 681; HEIGHT: 49" colSpan="2">
<asp:Label id="Label1" runat="server" Height="45" Width="480"
BackColor="Maroon" Font-Bold="True" ForeColor="#FFE0C0">
选择日历插入数据 </asp:Label>
</td>
</tr>
<tr>
<td style="WIDTH: 681" colSpan="2">
<asp:Calendar id="calHire" runat="server"
OnSelectionChanged="calHire_SelectionChanged"
BorderColor="#FFCC66" Height="153" Width="479"
BackColor="#FFFFCC" BorderWidth="1" ForeColor="#663399"
EnableViewState="False" ShowGridLines="True"
Font-Names="Verdana" Font-Size="8pt">
<TodayDayStyle ForeColor="White" BackColor="#FFCC66" />
<SelectorStyle BackColor="#FFCC66" />
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />
<DayHeaderStyle Height="1" BackColor="#FFCC66" />
<SelectedDayStyle Font-Bold="True" BackColor="#CCCCFF" />
<TitleStyle Font-Size="9pt" Font-Bold="True"
ForeColor="#FFFFCC" BackColor="#990000" />
<OtherMonthDayStyle ForeColor="#CC9966" />
</asp:Calendar>
</td>
</tr>
<tr>
<td style="WIDTH: 681" colSpan="2">
<asp:Label id="lbError" runat="server" ForeColor="Red" />
</td>
</tr>
</table>
</form>
</body>
</html>
<script language="c#" runat="server">
SqlConnection objConnection;
SqlDataAdapter daNorthwind;
DataSet dsNorthwind;
private void Page_Load(object sender, System.EventArgs e)
{
String strConnection = ConfigurationSettings.AppSettings["NWind"];
SqlConnection objConnection = new SqlConnection(strConnection);
String strSQL = "SELECT EmployeeID, LastName, FirstName, HireDate FROM Employees";
daNorthwind = new SqlDataAdapter(strSQL, objConnection);
SqlCommandBuilder cb = new SqlCommandBuilder(daNorthwind);
if (!Page.IsPostBack)
{
FillDataGrid();
}
}
private void FillDataGrid()
{
// 创建新的dataset 包含类别纪录
DataSet dsNorthwind = new DataSet("Employees");
// 从数据库中重新获得纪录,填充 dataset
daNorthwind.Fill(dsNorthwind);
// 设置DataGrid的DataSource 属性
dgNorthwind.DataSource = dsNorthwind.Tables[0].DefaultView;
// 绑定
dgNorthwind.DataBind();
}
private void calHire_SelectionChanged(object sender, System.EventArgs e)
{
// 如果选错日期会出错,必须选今天以前的日期。
if (calHire.SelectedDate <= DateTime.Today)
{
// 创建dataset 包含新纪录
DataSet dsTemp = new DataSet();
dsTemp.ReadXml(@"E:\bookcode\asp.net数据库入门\datastores\Employees.xml");
// 插入新行
DataRow r = dsTemp.Tables[0].NewRow();
r["LastName"] = "Ferracchiati";
r["FirstName"] = "Fabio C.";
r["HireDate"] = Convert.ToDateTime(calHire.SelectedDate);
// 插入一行 dataset的rows集合
dsTemp.Tables[0].Rows.Add(r);
// 使用临时dataset更新数据集
daNorthwind.Update(dsTemp, "EMPLOYEE");
// 刷新data grid 现实新纪录
FillDataGrid();
}
else
Response.Write("Hire date can't be in the future!");
Response.End();
}
</script>Top
2 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2005-01-27 06:04:36 得分 0
相同的VB代码就没问题
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.Data.SqlClient" %>
<html>
<head>
<title>Inserting Calendar and XML Data</title>
</head>
<body>
<form id="Form1" runat="server" method="post">
<table id="Table1"
style="Z-INDEX: 101; LEFT: 7px; POSITION: absolute; TOP: 7px"
cellSpacing="0" cellPadding="0" width="300" border="0">
<tr>
<td style="WIDTH: 681" colSpan="2">
<asp:DataGrid id="dgNorthwind" runat="server" Width="479"
Height="191" BorderColor="#CC9966" BorderWidth="1"
BorderStyle="None" BackColor="White" CellPadding="4"
DataKeyField="EmployeeID" AutoGenerateColumns="False">
<SelectedItemStyle Font-Bold="True"
ForeColor="#663399" BackColor="#FFCC66" />
<ItemStyle ForeColor="#330099" BackColor="White" />
<HeaderStyle Font-Bold="True"
ForeColor="#FFFFCC" BackColor="#990000" />
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC" />
<Columns>
<asp:BoundColumn DataField="FirstName" HeaderText="First Name" />
<asp:BoundColumn DataField="LastName" HeaderText="Last Name" />
<asp:BoundColumn DataField="HireDate" HeaderText="Hire Date" />
</Columns>
<PagerStyle HorizontalAlign="Center"
ForeColor="#330099" BackColor="#FFFFCC" />
</asp:DataGrid>
</td>
</tr>
<tr>
<td style="WIDTH: 681; HEIGHT: 49" colSpan="2">
<asp:Label id="Label1" runat="server" Height="45" Width="480"
BackColor="Maroon" Font-Bold="True" ForeColor="#FFE0C0">
By selecting a date from the calendar, you
will insert a new record in the database.
</asp:Label>
</td>
</tr>
<tr>
<td style="WIDTH: 681" colSpan="2">
<asp:Calendar id="calHire" runat="server"
OnSelectionChanged="calHire_SelectionChanged"
BorderColor="#FFCC66" Height="153" Width="479"
BackColor="#FFFFCC" BorderWidth="1" ForeColor="#663399"
EnableViewState="False" ShowGridLines="True"
Font-Names="Verdana" Font-Size="8pt">
<TodayDayStyle ForeColor="White" BackColor="#FFCC66" />
<SelectorStyle BackColor="#FFCC66" />
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />
<DayHeaderStyle Height="1" BackColor="#FFCC66" />
<SelectedDayStyle Font-Bold="True" BackColor="#CCCCFF" />
<TitleStyle Font-Size="9pt" Font-Bold="True"
ForeColor="#FFFFCC" BackColor="#990000" />
<OtherMonthDayStyle ForeColor="#CC9966" />
</asp:Calendar>
</td>
</tr>
<tr>
<td style="WIDTH: 681" colSpan="2">
<asp:Label id="lbError" runat="server" ForeColor="Red" />
</td>
</tr>
</table>
</form>
</body>
</html>
<script language="VB" runat="server">
Dim objConnection As SqlConnection
Dim daNorthwind As SqlDataAdapter
Dim dsNorthwind As DataSet
Sub Page_Load(Source As Object, E As EventArgs)
Dim strConnection As String = ConfigurationSettings.AppSettings("NWind")
objConnection = New SqlConnection(strConnection)
Dim strSQL As String = "SELECT EmployeeID, LastName, FirstName, HireDate " & _
"FROM Employees"
daNorthwind = New SqlDataAdapter(strSQL, objConnection)
Dim cb As New SqlCommandBuilder(daNorthwind)
If Not Page.IsPostBack Then
FillDataGrid()
End If
End Sub
Sub FillDataGrid()
' Create a new dataset to contain categories' records
dsNorthwind = New DataSet()
' Fill the dataset retrieving data from the database
daNorthwind.Fill(dsNorthwind)
' Set the DataSource property of the DataGrid
dgNorthwind.DataSource = dsNorthwind.Tables(0).DefaultView
' Bind the dataset data to the DataGrid
dgNorthwind.DataBind()
End Sub
Sub calHire_SelectionChanged(Source As Object, E As EventArgs)
' If the user chooses a date in the future, an error message is displayed
If calHire.SelectedDate <= Today() Then
' Create a temporary dataset to contain the new record
Dim dsTemp As New DataSet()
dsTemp.ReadXml("E:\bookcode\asp.net数据库入门\datastores\Employees.xml")
' Create a new row
Dim r As DataRow = dsTemp.Tables(0).NewRow()
r("LastName") = "Ferracchiati"
r("FirstName") = "Fabio C."
r("HireDate") = Convert.ToDateTime(calHire.SelectedDate)
' Add the new row into the dataset's rows collection
dsTemp.Tables(0).Rows.Add(r)
' Update the database using the temporary dataset
daNorthwind.Update(dsTemp, "EMPLOYEE")
' Refresh the data grid to display the new record
FillDataGrid()
Else
Response.Write("Hire date can't be in the future!")
Response.End()
End If
End Sub
</script>Top
3 楼zhjihui080220(zhjihui)回复于 2005-01-27 08:10:28 得分 20
if()
{
}
else
{
Response.Write(...);
Response.End();
}
if...else...是要有大括号的
Top




