0
我得到這個錯誤:SqlCommand的參數化SQL錯誤:必須聲明標量變量 「@ObjectType」
Must declare the scalar variable "@ObjectType".
任何想法,爲什麼?如果我硬編碼值,查詢工作。
public static DataSet GetDatabaseObjectHistory(string objectType,
string schemaName,
string objectName,
string msConnectionString)
{
using (SqlConnection sqlConnection = new SqlConnection()
{
ConnectionString = msConnectionString
})
{
sqlConnection.Open();
using (DataSet ds = new DataSet())
{
#region sqlGetSchemaObjects
const string sql = @"SELECT
RowId
,EventTime
,LoginName
,UserName
,DatabaseName
,SchemaName
,ObjectName
,ObjectType
,DDLCommand
FROM
Audit_Log
WHERE
Audit_Log.ObjectType = @ObjectType AND
Audit_Log.SchemaName = @SchemaName AND
Audit_Log.ObjectName = @ObjectName";
#endregion
SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);
sqlCommand.CommandType = CommandType.Text;
sqlCommand.Parameters.AddWithValue("@ObjectType", objectType);
sqlCommand.Parameters.AddWithValue("@SchemaName", schemaName);
sqlCommand.Parameters.AddWithValue("@ObjectName", objectName);
using (SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sql, sqlConnection))
{
sqlDataAdapter.Fill(ds, sql);
}
ds.Tables[0].TableName = "Object History";
return ds;
}
}
return null;
}
其實,你給了我一個錯誤,但你讓我沿着正確的軌道思考。看我的帖子。 – ChadD 2012-08-19 07:44:31