CreateConnectionString();
SqlCommand cmd = sqlConnection.CreateCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "[MURL_InsertTokens]";
SqlParameter ParameterTokenID = new SqlParameter();
ParameterTokenID.ParameterName = "@TokenID";
ParameterTokenID.SqlDbType = System.Data.SqlDbType.Int;
ParameterTokenID.Direction = ParameterDirection.Input;
ParameterTokenID.Value = token;
cmd.Parameters.Add(ParameterTokenID);
SqlParameter ParameterToken = new SqlParameter();
ParameterToken.ParameterName = "@Token";
ParameterToken.SqlDbType = System.Data.SqlDbType.NVarChar;
ParameterToken.Direction = ParameterDirection.Input;
ParameterToken.Value = token;
cmd.Parameters.Add(ParameterToken);
return true;
存储过程:
ALTER PROCEDURE [dbo].[MURL_InsertTokens]
@TokenID int ,
@Token nvarchar(MAX)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF EXISTS (SELECT * FROM Tokens)
BEGIN
UPDATE Tokens SET Tokens = @Token WHERE TokenID = @TokenID
END
ELSE
BEGIN
INSERT INTO Tokens(Tokens) VALUES (@Token)
END
END
它返回true但我的数据没有插入,我不知道为什么。
答案 0 :(得分:2)
你忘了在这里检查身份证件
IF EXISTS (SELECT * FROM Tokens)
如果表格中至少有一行,则插入部分永远不会触发,只有更新部分
你可能想要
IF EXISTS (SELECT * FROM Tokens WHERE TokenID = @TokenID)
答案 1 :(得分:1)
你在打电话给这个程序吗?
cmd.ExecuteNonQuery();
答案 2 :(得分:0)
您的代码片段似乎并未实际执行您正在构建的操作。添加:
cmd.ExecuteNonQuery();
实际执行命令。