C# 从数据库调用字节时出错
我在SQL Server中存储了一个映像。首先,我将图像转换为字节,并将其保存在SQL Server中,并在很大程度上完成了保存…..当我尝试从保存的SQL Server调用相应图像的字节值时,以及当我尝试在C#中实现该值时,我得到了如下错误 用户代码未处理NullReferenceException 对象引用未设置为对象的实例 这是我的密码: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) {
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想隐藏他的连接字符串…:)我刚刚隐藏了我的连接…顺便说一句,它现在工作正常…问题只与过程有关…非常感谢你的帮助朋友:)问题只与过程有关…我清除了它,现在错误完成了。。。。。非常感谢您的帮助,朋友:)