簡體   English   中英

如何用表格數據填充文本框?

[英]How to populate textboxes with table data?

我有一張桌子,我有文本框,讓我們建立聯系! 我正在使用ASP.NET和sql server2008; 我已經將連接字符串編碼到webconfig文件中,但是我想知道如何用表中的特定字段填充特定的文本框。 更具體地說,用戶將在主頁上提交數據,然后有機會在編輯頁面上編輯此數據。 我知道,會話是執行此操作的最簡單方法,但是我的培訓師特別禁止這樣做,因為高流量會導致會話對象出現問題,並命令我使用sql連接。 他是老板。 那么,如何獲取剛從主頁插入的數據以顯示在編輯頁面上的可編輯文本框中?

看一看: 數據綁定

您可以使用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命令,然后使用以下代碼將所有數據放入TextBox中:

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。

然后,在編輯頁面上,您可以查找當前用戶的現有地址詳細信息,並將頁面上文本框的值設置為各種列值。

更好的是,您也可以將編輯頁面設置為初始輸入頁面,如果找不到現有數據,則將文本框留空,從而節省了編寫2個單獨頁面的時間。

如果您沒有這種模式,擁有用戶帳戶或其他名稱的數據,但是數據是特定於用戶的,則仍然可以使用類似的方案,但是您可以使用鍵來代替在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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM