sql查询的问题(不拾取参数)

本文关键字:参数 查询 问题 sql | 更新日期: 2023-09-27 17:50:56

我有以下代码在c# sql insert:

using (DM dbManager = new DM())
{
    dbManager.Command.CommandText = @"Insert into TransactionLog(TransactionNumber,Amount
    ,studentID) Values (@trnumber,@amount,@studentID) ; SELECT SCOPE_IDENTITY() ;";
    dbManager.Command.Parameters.AddWithValue("@trnumber", txnref);
    dbManager.Command.Parameters.AddWithValue("@amount", amount);
    dbManager.Command.Parameters.AddWithValue("@studentID", 
                                           Membership.GetUser().ProviderUserKey.ToString());
    id = Convert.ToInt32(dbManager.Command.ExecuteScalar());
}

但不明白为什么我得到这个错误:

 System.Data.SqlClient.SqlException: The parameterized query '(@trnumber 
 nvarchar(4000),@amount nvarchar(5),@studentID nvarcha' expects the 
 parameter '@trnumber', which was not supplied.

因为参数在查询中很明显,所以我尝试更改参数的名称。

有什么建议吗?

sql查询的问题(不拾取参数)

if (String.IsNullOrEmpty(txnref))
            {
                command.Parameters.AddWithValue("@trnumber", DBNull.Value); 
            }
            else
                command.Parameters.AddWithValue("@trnumber", txnref);

尝试将DBNull.Value如果值为空,它将工作!还要检查列是否接受NULL