如何用表格数据填充文本框
本文关键字:文本 填充 数据 何用 表格 | 更新日期: 2023-09-27 17:50:12
我有一个表格,我有一个文本框,让我们建立一个连接!我用的是ASP。. NET和sql server2008;我已经把我的连接字符串编码到webconfig文件了,但是我挂了如何从我的表中填充特定字段的特定文本框。更具体地说,用户将在主页上提交数据,然后有机会在编辑页面上编辑这些数据。我知道,session是最简单的方法,但是我的培训师特别禁止使用它,理由是高流量会导致session对象出现问题,并命令我使用sql连接。他是老板。那么,如何获得刚刚从主页插入的数据,以显示在编辑页面上的可编辑文本框中呢?
看看这个:Data-Binding
您可以使用FormView来显示存储在SQL Server上的数据。
必须像这样定义SqlDataSource:
<asp:SqlDataSource
id="SqlDataSource1"
runat="server"
DataSourceMode="DataReader"
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT FirstName, LastName, Title FROM Employees">
</asp:SqlDataSource>
然后你可以这样使用FormView:
<asp:FormView ID="FormView1"
DataSourceID="SqlDataSource1"
DataKeyNames="ProductID"
RunAt="server">
<ItemTemplate>
<table>
<tr>
<td align="right"><b>Product ID:</b></td>
<td><%# Eval("ProductID") %></td>
</tr>
<tr>
<td align="right"><b>Product Name:</b></td>
<td><%# Eval("ProductName") %></td>
</tr>
<tr>
<td align="right"><b>Category ID:</b></td>
<td><%# Eval("CategoryID") %></td>
</tr>
<tr>
<td align="right"><b>Quantity Per Unit:</b></td>
<td><%# Eval("QuantityPerUnit") %></td>
</tr>
<tr>
<td align="right"><b>Unit Price:</b></td>
<td><%# Eval("UnitPrice") %></td>
</tr>
</table>
希望这有助于....
您可以执行SELECT命令,然后使用以下代码将您的数据放入文本框:
YourTextBox.Text = yourDBValue;
假设存在某种登录系统(即您至少可以识别您的用户),那么任务就相当简单了。
当用户在主页/数据输入页面上输入数据时,您将验证数据服务器端,并假设一切正常,将此数据存储在当前用户的数据库中。所以,也许他们正在输入他们的地址(作为一个例子)。你可以这样写:
// NB: this is NOT code, just shorthand for a hypothetical database schema
Table: User
Columns: User_ID, Email, Name
Table: Address
Columns: User_ID (foreign key into User), Line1, Line2, ... PostCode, Country ... (you get the picture)
因此,在他们输入数据之后,您将详细信息存储到这个表中,并将User_ID设置为当前用户的ID。
然后,在编辑页面上,您可以查找当前用户的现有地址详细信息,并将页面上的文本框的值设置为各种列值。
更好的是,您可以将编辑页作为初始输入页,如果它没有找到现有的数据,它会将文本框保留为空,从而节省您编写两个单独的页面。
如果你没有这种模式,你有用户帐户或其他,但数据是特定于用户的,你仍然可以使用这样的方案,但不是在User_ID上键化Address
表,你可以使用GUID这样的值分配给用户并存储在他们的会话中。这将允许您至少在其会话期间跟踪用户。为了扩展这一点,你可以把这个值写入一个cookie,记住设置过期日期,这将允许你跟踪他们的几个会话,直到cookie过期,或者他们改变浏览器等。
Table: Address
Columns: Session_Guid, Line1, Line2, ... PostCode, Country ...
这是大多数网站登录的基础,他们使用cookie中的唯一值来跟踪用户。
你在问如何获取文本框,输入一些数据,然后将其提交给数据库?
插入语句?我会使用LINQ,但我不确定你是否在使用它。或者准备一个处理插入的存储过程。然而,在最简单的形式中:
try {
using ( SqlConnection conn = new SqlConnection(cstr)) {
SqlParameter name = cmd.Parameters.Add( "@name", SqlDbType.NVarChar, 15 );
name.Value = TextBox1.Text;
string insertString = @"insert into Table(columnName) values (@name)";
SqlCommand cmd = new SqlCommand(insertString, conn);
cmd.ExecuteNonQuery();
}
} catch (Exception ex) {
//do some logging
} finally {
conn.Close();
}