我在SQL Server中存储了一个图像。首先,我已将图像转换为字节,并且已将其保存在SQL Server中并且非常完成了保存.....当我尝试从我保存的SQL Server调用相应图像的字节值时以及当我尝试实现该图像时在C#中,我收到类似
的错误NullReferenceException未被用户代码
处理对象引用未设置为对象的实例
这是我的代码:
protected void GetImageButton_OnClick(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection();
connection.ConnectionString = @"";
connection.Open();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "uspgetimage";
command.Parameters.AddWithValue("@imageID", getimagebutton.Text);
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
adapter.Fill(dataset);
Byte[] bytes = command.ExecuteScalar() as byte[];
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
Image.ImageUrl = "data:image/jpeg;base64," + base64String;
}
请看看它并帮助我从这些朋友那里离开。
答案 0 :(得分:0)
在 NullReferanceException 之前,我不相信这行不会抛出任何异常..
SqlConnection connection = new SqlConnection();
connection.ConnectionString = @"";
connection.Open();
在初始化SqlConnection.ConnectionString
属性之前,无法打开连接。在您的情况下,您的连接字符串是空字符串。您如何期望此连接连接到您的SQL Server?
我的建议是,阅读一本关于C#的书,并将其与 Begining C# 5.0 Databases等数据库一起使用
对于 NullReferanceException ,我已经在 comment 中提到了你应该做的事情。
答案 1 :(得分:0)
您可能会在致电NullReferenceException
时收到ExecuteScalar
。来自the documentation:
返回值
结果集中第一行的第一列,或空引用...如果结果集为空。
强调我的。
值得一提的是,SqlConnection
,SqlCommand
,DataSet
和SqlDataAdapter
都是IDisposable
。您应该在Dispose
上调用{{1}},但the value of disposing DataSet
is arguable。
答案 2 :(得分:0)
尝试在SQL Server中运行存储过程,以查看它是否使用
返回任何值EXEC uspgetimage 'COmma seperated Parameter List'