C# 如何通过ADO.NET
我正在使用SQL Server 2008和C ADO.NET来完成这项工作 我想使用存储过程将这些数据插入表SAVEDATA 多谢各位 Srosh您只需编写一条INSERT语句,然后从传入的表中选择数据:C# 如何通过ADO.NET,c#,sql,sql-server-2008,ado.net,C#,Sql,Sql Server 2008,Ado.net,我正在使用SQL Server 2008和C ADO.NET来完成这项工作 我想使用存储过程将这些数据插入表SAVEDATA 多谢各位 Srosh您只需编写一条INSERT语句,然后从传入的表中选择数据: CREATE PROCEDURE [dbo].[spSave] (@theDATA As [dbo].[TVP] Readonly) AS BEGIN INSERT INTO dbo.SaveResponse(ID, myQuestion, PersonWhoRespons
CREATE PROCEDURE [dbo].[spSave] (@theDATA As [dbo].[TVP] Readonly)
AS
BEGIN
INSERT INTO dbo.SaveResponse(ID, myQuestion, PersonWhoResponses,
Response, [User], [DateTime])
SELECT
ID, myQuestion, PersonWhoResponses,
Response, [User], [DateTime]
FROM
@theDATA
END
我怎么会连一个问题都没问就得到否定呢?这还不够清楚吗?顺便说一句:使用User和DateTime作为列名是非常糟糕的设计-这些都是保留字-不要自己使用它们作为列名或表名!。Marc,我现在将更改名称,感谢您的建议,您建议我如何在ADO.NET C端编写此代码?如何创建具有不同数据长度的表?有什么想法吗?Thanks@SroshSharar:在ADO.NET端,您需要创建一个DataTable,该DataTable包含与表类型定义匹配的正确数量的DataColumns,然后您需要用数据填充该DataTable并将其传递给存储过程。我已解决此问题。谢谢你的帮助,我自己解决了。非常感谢您的回答。@数据是存储过程中的一个输入参数,并且标记为只读,您不能将数据行添加到该变量中!你需要从那个变量中读取它们。我也同意,为我的错误感到抱歉。也许你可以帮我处理这个Norbert,我有另一个名为User的表。如果我想根据此表中的ID从列USERNAME中获取用户名,我该怎么做?这很简单。在类似SELECT*FROM的查询中,您可以使用WHERE来获取过滤记录。在这个示例中,它将是:从dbo中选择[USERNAME],其中[User]的[ID]=我认为我没有足够清楚地解释它。假设我想在我的SaveResponse表中有另一列,并且我想基于此用户定义数据类型中的ID获取该信息。。。从名为UserTable的表和列Username。。我该怎么做?
CREATE PROCEDURE [dbo].[spSave] (@theDATA As [dbo].[TVP] Readonly)
AS
BEGIN
INSERT INTO dbo.SaveResponse(ID, myQuestion, PersonWhoResponses,
Response, [User], [DateTime])
SELECT
ID, myQuestion, PersonWhoResponses,
Response, [User], [DateTime]
FROM
@theDATA
END