Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net mvc#-从sql server数据库读取时出现问题_C#_Sql_Database - Fatal编程技术网

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”])。就是这样。