C# 从数据库调用字节时出错

C# 从数据库调用字节时出错,c#,.net,sql-server,ado.net,C#,.net,Sql Server,Ado.net,我在SQL Server中存储了一个映像。首先,我将图像转换为字节,并将其保存在SQL Server中,并在很大程度上完成了保存…..当我尝试从保存的SQL Server调用相应图像的字节值时,以及当我尝试在C#中实现该值时,我得到了如下错误 用户代码未处理NullReferenceException 对象引用未设置为对象的实例 这是我的密码: protected void GetImageButton_OnClick(object sender, EventArgs e) {

我在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;  
}  
请看一看,并帮助我摆脱这个朋友。

在nullreferenceexception之前,我不相信这句话不会引发任何异常

SqlConnection connection = new SqlConnection();  
connection.ConnectionString = @"";  
connection.Open();
在初始化
SqlConnection.ConnectionString
属性之前,无法打开连接。在您的情况下,连接字符串是空字符串。您希望此连接如何连接到sql server

我的建议是,读一本关于C#的书,并将其与数据库一起使用,如


对于NullReferenceException,我已经在我的中提到了您应该做什么。

很可能您在调用
ExecuteScalar
时遇到了
NullReferenceException
。发件人:

返回值 结果集中第一行的第一列,或空引用。。。如果结果集为空

我的


值得一提的是,
SqlConnection
SqlCommand
DataSet
SqlDataAdapter
都是
IDisposable
。您应该对它们调用
Dispose

尝试在SQL Server中运行存储过程,查看它是否使用

EXEC uspgetimage 'COmma seperated Parameter List'

这个问题,索纳·戈努尔的编辑似乎非常熟悉。我现在有10个Deja Vu。告诉我你以前是否问过这个问题?阅读这个问题调试你的代码,找出哪一行抛出这个异常并修复它。可能您的一个变量是
null
,您在初始化它之前尝试使用它。您可以发布stacktrace吗?或者最好发布您的存储过程。这部分可能返回null:
Byte[]bytes=command.ExecuteScalar()作为Byte[]yeah thank u friends:)错误出现在Byte[]bytes=command.ExecuteScalar()行中,为Byte[];。。。过程返回值时出错…..现在我得到了答案…..非常感谢您的帮助朋友:)太好了..您可以发布存储过程吗?并且确保有id=
imageID
的行。我想OP想隐藏他的连接字符串…:)我刚刚隐藏了我的连接…顺便说一句,它现在工作正常…问题只与过程有关…非常感谢你的帮助朋友:)问题只与过程有关…我清除了它,现在错误完成了。。。。。非常感谢您的帮助,朋友:)