我有一张桌子,我有文本框,让我们联系!我正在使用ASP.NET和sql server2008;我已经将我的连接字符串编码到webconfig文件中,但是我已经知道如何用我的表中的特定字段填充特定的文本框。更具体地说,用户将在主页上提交数据,然后有机会在编辑页面上编辑该数据。我知道,会话将是最简单的方法,但我的教练特别禁止它,因为高流量会导致会话对象出现问题,并命令我使用sql连接。他是老板。那么如何从主页插入数据以显示在编辑页面上的可编辑文本框中?
答案 0 :(得分:3)
看看这个: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>
希望这有帮助......
答案 1 :(得分:0)
您可以执行SELECT命令,然后使用以下代码将任何数据放入TextBox:
YourTextBox.Text = yourDBValue;
答案 2 :(得分:0)
假设存在某种登录系统(即您至少可以识别您的用户),那么任务就相当简单。
当用户在主页/数据输入页面上输入数据时,验证数据服务器端,并假设一切正常,将此数据存储在当前用户的数据库中。所以,也许他们正在输入他们的地址(作为例子)。你可能有这样的事情:
// 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。
然后,在编辑页面上,您只需查找当前用户的现有地址详细信息,并将页面上的文本框值设置为各种列值。
更好的是,您也可以将编辑页面作为初始输入页面,如果它没有找到现有数据,则会将文本框留空,从而节省您编写2个单独的页面。
如果您没有这种模式,您拥有用户帐户或其他任何模式,但数据是特定于用户的,您仍然可以使用这样的方案,而不是键入Address
表在User_ID中,您可以使用类似GUID的值,您可以将其分配给用户并存储在其会话中。这将允许您至少在会话期间跟踪用户。要扩展它,您可以将此值写入cookie,记住设置过期日期,这将允许您跟踪多个会话,直到cookie过期,或者他们更改浏览器等。
Table: Address
Columns: Session_Guid, Line1, Line2, ... PostCode, Country ...
这是大多数登录网站的基础,他们使用cookie中的唯一值来跟踪用户。
答案 3 :(得分:0)
您问如何获取文本框,输入一些数据,然后将其提交到数据库?
那么插入语句?我会使用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();
}