asp.net mvc#-从sql server数据库读取时出现问题
我无法从数据库中读取任何数据,请查看我的代码并找出问题asp.net mvc#-从sql server数据库读取时出现问题,c#,sql,database,C#,Sql,Database,我无法从数据库中读取任何数据,请查看我的代码并找出问题 cmd = new SqlCommand(); cmd.Connection = connection; cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = @"SELECT ImageData, "
cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = @"SELECT ImageData, "
+ " ContentType, "
+ " ImageName "
+ " FROM UsersImage "
+ " WHERE UserName = @UserName ";
cmd.Parameters.Add(new SqlParameter("@UserName", ThreadUserName));
reader = cmd.ExecuteReader();
if (reader["ContentType"] != DBNull.Value)
{
ContentType = Convert.ToString(reader["@ContentType"]);
}
if (reader["ImageName"] != DBNull.Value)
{
ImageName = Convert.ToString(reader["@ImageName"]);
}
if (reader["ImageData"] != DBNull.Value)
{
ImageData = Convert.ToByte(reader["@ImageData"]);
}
int affectedRows = cmd.ExecuteNonQuery();
if (affectedRows != 1)
{
}
reader.Close();
我的表名是:UsersImage
我的列、ImageData(图像)、ContentType(nvarchar50)、ImageName(nvarchar50)、UserName(varchar20)加载项reader.Read()
cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = @"SELECT ImageData, "
+ " ContentType, "
+ " ImageName "
+ " FROM UsersImage "
+ " WHERE UserName = @UserName ";
cmd.Parameters.Add(new SqlParameter("@UserName", ThreadUserName));
using (IDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
if (reader["ContentType"] != DBNull.Value)
{
ContentType = Convert.ToString(reader["ContentType"]);
}
if (reader["ImageName"] != DBNull.Value)
{
ImageName = Convert.ToString(reader["ImageName"]);
}
if (reader["ImageData"] != DBNull.Value)
{
ImageData = Convert.ToByte(reader["ImageData"]);
}
int affectedRows = cmd.ExecuteNonQuery();
if (affectedRows != 1)
{
}
}
}
编辑:我添加了一个using as来替换reader.Close()。加载项reader.Read()
cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = @"SELECT ImageData, "
+ " ContentType, "
+ " ImageName "
+ " FROM UsersImage "
+ " WHERE UserName = @UserName ";
cmd.Parameters.Add(new SqlParameter("@UserName", ThreadUserName));
using (IDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
if (reader["ContentType"] != DBNull.Value)
{
ContentType = Convert.ToString(reader["ContentType"]);
}
if (reader["ImageName"] != DBNull.Value)
{
ImageName = Convert.ToString(reader["ImageName"]);
}
if (reader["ImageData"] != DBNull.Value)
{
ImageData = Convert.ToByte(reader["ImageData"]);
}
int affectedRows = cmd.ExecuteNonQuery();
if (affectedRows != 1)
{
}
}
}
编辑:我添加了一个using as来替换reader.Close()。是否有异常?它能用吗?我们不可能通过查看来调试您的代码。您的数据库中肯定有行吗?您可能还会考虑使用ORM—Castle ActiveRecord非常容易移动—这比使用内联sql更容易:)阿门,在ORM上,使用过ActiveRecord,一旦开始,就足够容易了。我想说这种类型的编码应该尽快退出。是非常低效和痛苦的(就像你们现在感觉的)Exoption说我在数据库中并没有条目,但我在参数中有用户名,你们有例外吗?它能用吗?我们不可能通过查看来调试您的代码。您的数据库中肯定有行吗?您可能还会考虑使用ORM—Castle ActiveRecord非常容易移动—这比使用内联sql更容易:)阿门,在ORM上,使用过ActiveRecord,一旦开始,就足够容易了。我想说这种类型的编码应该尽快退出。是非常低效和痛苦的(就像你们现在感觉的)Exoption说我在数据库中没有条目,但我有用户名,它在参数中。我发现我唯一的问题是我用@阅读。它应该没有@like(reader[“ImageName”]),而不是(reader[“@ImageName”])。就这样。我发现我唯一的问题是我和@一起读书。它应该没有@like(reader[“ImageName”]),而不是(reader[“@ImageName”])。就是这样。