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