2010-03-03 68 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字段正确排序。