1

イメージを 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;  
}  

親切にそれを見て、私がこの友達から抜け出すのを手伝ってください.

4

3 に答える 3

0

SQL Serverでストアドプロシージャを実行して、を使用して値が返されるかどうかを確認してください。

EXEC uspgetimage 'COmma seperated Parameter List'
于 2013-03-18T06:29:03.147 に答える
0

NullReferenceExceptionへの呼び出しからを取得している可能性がありますExecuteScalarドキュメントから:

戻り値

結果セットの最初の行の最初の列、または結果セットが空の場合はnull参照...。

強調鉱山。

そして、それが価値があるもののためにSqlConnection、、、SqlCommandそしてDataSetすべてSqlDataAdapterですIDisposable処分の価値は議論の余地Disposeがありますが、あなたはそれらを呼び出す必要があります。DataSet

于 2013-03-17T09:40:04.633 に答える
0

NullReferanceExceptionの前に、この行が例外をスローしないとは思わない..

SqlConnection connection = new SqlConnection();  
connection.ConnectionString = @"";  
connection.Open();

SqlConnection.ConnectionStringプロパティを初期化する前に接続を開くことはできません。あなたの場合、接続文字列は空の文字列です。この接続が SQL サーバーにどのように接続すると思いますか?

私の提案は、C# に関する本を読み、Begining C# 5.0 Databasesのようなデータベースで使用することです。

NullReferanceExceptionについては、コメントで何をすべきかについて既に述べました。

于 2013-03-17T09:29:06.767 に答える