當談到SQL時,我是一名新手。當創建一個參數存儲過程如下:存儲過程默認值
@executed bit,
@failure bit,
@success bit,
@testID int,
@time float = 0,
@name varchar(200) = '',
@description varchar(200) = '',
@executionDateTime nvarchar(max) = '',
@message nvarchar(max) = ''
這是T-SQL默認值的正確形式嗎?我試圖使用NULL而不是''。
當我試圖通過C#執行此過程時出現一個錯誤,指的是預期的描述,但未提供。當這樣調用時:
cmd.Parameters["@description"].Value = result.Description;
result.Description爲null。如果這不是在SQL中默認爲NULL(在我的情況「現在好」)?
這裏的調用命令:
cmd.CommandText = "EXEC [dbo].insert_test_result @executed,
@failure, @success, @testID, @time, @name,
@description, @executionDateTime, @message;";
...
cmd.Parameters.Add("@description", SqlDbType.VarChar);
cmd.Parameters.Add("@executionDateTime", SqlDbType.VarChar);
cmd.Parameters.Add("@message", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = result.Name;
cmd.Parameters["@description"].Value = result.Description;
...
try
{
connection.Open();
cmd.ExecuteNonQuery();
}
...
finally
{
connection.Close();
}
容易,只需設置的CommandType到存儲過程和CommandText中爲 「insert_test_result」,雖然。 – 2008-09-30 21:09:40