2010-03-03 69 views
0

我想保存html表到sql服務器表的唯一名稱並將其數據保存在數據庫中。 例如,我有一個這樣的html表格(它是由用戶在瀏覽器中動態創建的)。意見如何保存html表到SQL服務器

int varchar(20) http://content.screencast.com/users/Telman/folders/Jing/media/4605e7cc-d874-4ac4-ba30-13643fe22f3d/2010-03-04_0211.png

我用asp.net,C#,SQL Server 2008箇中明示。 如何在單擊保存按鈕後,創建具有唯一名稱,2列colums int和varchar(40)類型的表以及插入數據?

我認爲可以通過將表格呈現爲XML,然後在C#類上使用此xml,然後保存到數據庫中。

你唱什麼?

編輯後添加?

我想保存此:

<table> 
    <tr> 
     <td>int</td> 
     <td>varchar(40)</td> 
    </tr> 
    <tr> 
     <td>1</td> 
     <td>USA</td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td>Canada</td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td>Mexico</td> 
    </tr> 
</table> 

這樣的:

CREATE TABLE uniqueName 
(key int, 
values varchar(50)) 

INSERT INTO uniqueName (key, values) 
     VALUES (1, 'USA') 
INSERT INTO uniqueName (key, values) 
     VALUES (2, 'Canada') 
INSERT INTO uniqueName (key, values) 
     VALUES (3, 'Mexico') 

將有助於代碼寧靜更:)或鏈接

回答

0

您可以創建兩個表 - 一個是入口對於Html表格本身(其中ID保證是唯一的,並且是Html表格的名稱),另一個是表格中包含的數據:

CREATE TABLE dbo.HtmlTables 
(ID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY, 
HtmlTableName VARCHAR(100) -- or whatever length you need 
) 

CREATE TABLE dbo.HtmlTableData 
(ID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY, 
HtmlTableID INT NOT NULL, 
Sequence INT NOT NULL, 
Key INT, 
Value VARCHAR(500) 
) 

你會希望在HtmlTables.ID場創建兩個表之間的外鍵參照完整性:

ALTER TABLE dbo.HtmlTableData 
    ADD CONSTRAINT FK_HtmlTableData_HtmlTables 
    FOREIGN KEY(HtmlTableID) REFERENCES dbo.HtmlTables(ID) 

,你最有可能還希望確保每個序列號顯示出來只有一次每個HtmlTableID,因此創建一個唯一的索引。

CREATE UNIQUE INDEX UIX01_HtmlTableData 
    ON dbo.HtmlTableData(HtmlTableID, Sequence) 

現在你可以在每個HTML表格儲存至dbo.HtmlTables的條目,並在網格中的每一行可以存儲到一個行dbo.HtmlTableData並通過外鍵關係中的HTML表條目相關聯,它將通過Sequence字段正確排序。