如何用表格数据填充文本框

本文关键字:文本 填充 数据 何用 表格 | 更新日期: 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();
}