0

ASP.Net の超初心者です。これが数え切れないほど尋ねられた場合は申し訳ありません。ここと Google でこの同様の問題に対する多くの回答を読みましたが、自分のコードに適用できる解決策が見つかりません。画像の URL をデータベースに保存するには、これは機能していないコードです。

if (imgPicture.ImageUrl != null)
                {
                    String strConn = "Data Source=TOSHI;Initial Catalog=prueba;Integrated Security=True";
                    SqlConnection conn = new SqlConnection(strConn);
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    string strQuery = "Insert into curriculum (imagen) values      (@imgPicture)";
                    cmd.CommandText = strQuery;
                    cmd.CommandType = CommandType.Text;
                    cmd.Parameters.AddWithValue("@imagen", imgPicture.ImageUrl);
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }

cmd.parameters で私も試しました

cmd.Parameters.Add("imagen", SqlDbType.VarChar).Value = imgPicture.ImageUrl;

しかし、どちらも機能しませんでした

編集: データベースのフィールドの名前は imagen、ASP のイメージ フィールドは imgPicture です。

4

3 に答える 3

4

パラメータに間違った名前を使用しています。@imgPictureクエリから、次のようになります。

cmd.Parameters.AddWithValue("@imgPicture", imgPicture.ImageUrl);

アップデート

この質問へのコメントに基づいて、このifブロック全体の内容を削除して、メインの挿入に次のものを配置できると思います。

cmd.Parameters.AddWithValue("@imgPicture", (imgPicture.ImageUrl == null ? (object)DBNull.Value : (object)imgPicture.ImageUrl));

また、クエリに挿入する列のリストの最後に imagen を追加し、パラメーターに @imgPicture を追加する必要があります。

于 2012-07-10T18:57:35.363 に答える
2

残念ながら、これは asp.net とは何の関係もなく、すべてクエリに関係しています。

クエリは次のとおりです。

Insert into curriculum (imagen) values      (@imgPicture)

パラメータを定義します@imgPicture

次に、@imagen(無視される)というパラメーターを追加しますが、さらに重要なのは、パラメーターを追加しないこと@imgPictureです。

あなたは本当に意味がなかったのcmd.Parameters.AddWithValue("@imgPicture", imgPicture.ImageUrl);ですか?

于 2012-07-10T18:58:36.303 に答える
2

あなたのクエリはこれです:

string strQuery = "Insert into curriculum (imagen) values (@imgPicture)";

@imgPicture変数として宣言している場所。

コードでその変数を使用する必要があります。

cmd.Parameters.Add("@imgPicture", SqlDbType.VarChar).Value = imgPicture.ImageUrl;
于 2012-07-10T18:59:50.127 に答える