0

SQL Server Expressデータベースに次のように書き込むための「レシピの追加」ボタンを備えた基本的なフォームがあります。

  1. レシピ名
  2. レシピの材料
  3. レシピの説明
  4. レシピ画像

フォームは質問の下部にあり、[レシピを追加] ボタンをクリックすると、updatedate()メソッドが呼び出されます。このメソッドは次のようになります。

private void updatedata()
{ 
        // filestream object to read the image
        // full length of image to a byte array
        try
        {
                // try to see if the image has a valid path
                if (imagename != "")
                {
                    FileStream fs;
                    fs = new FileStream(@imagename, FileMode.Open, FileAccess.Read);

                    // a byte array to read the image
                    byte[] picbyte = new byte[fs.Length];
                    fs.Read(picbyte, 0, System.Convert.ToInt32(fs.Length));
                    fs.Close();

                    //open the database using odp.net and insert the lines
                    string connstr = @"Data Source=.;Initial Catalog=RecipeOrganiser;Persist Security Info=True;User ID=sa";

                    SqlConnection conn = new SqlConnection(connstr);
                    conn.Open();
                    string query;
                    query = "insert into Recipes(RecipeName,RecipeImage,RecipeIngredients,RecipeInstructions) values (" + textBox1.Text + "," + " @pic" + "," + textBox2.Text + "," + textBox3.Text + ")";

                    SqlParameter picparameter = new SqlParameter();
                    picparameter.SqlDbType = SqlDbType.Image;
                    picparameter.ParameterName = "pic";
                    picparameter.Value = picbyte;
                    SqlCommand cmd = new SqlCommand(query, conn);
                    cmd.Parameters.Add(picparameter);
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Image successfully saved");
                    cmd.Dispose();
                    conn.Close();
                    conn.Dispose();
                    Connection();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

私の問題は、情報が入力された状態で [レシピの追加] ボタンをクリックすると、約 30 秒間フリーズし、次のエラーが表示されることです。SQL Server サービスが実行されていることを確認しました。ここで私が間違っていることについて誰かアドバイスをいただけますか?

ここに画像の説明を入力

形状イメージ

ここに画像の説明を入力

4

3 に答える 3

1
 string connstr = @"Data Source=.;Initial Catalog=RecipeOrganiser;Persist Security Info=True;User ID=sa";

する必要があります

 string connstr = @"Server=localhost\{SERVER_NAME};Database=RecipeOrganiser;Trusted_Connection=True;";

プロパティ値「Name」ユーザーから SERVER_NAME を取得できます SQL サーバーのプロパティ

于 2013-10-20T13:33:42.620 に答える
0

あなたの接続文字列は私にはよく見えません... .Net SqlConnectionStringBuilder クラスを使用して有効な接続文字列を作成してみてください... DataSource、InitialCatalog および IntegratedSecurity または UserId および Password プロパティを設定します

于 2013-10-29T14:21:02.890 に答える