0

ASP.Net 上的超级新手,很抱歉,如果这个问题被问了无数次,我已经在这里和谷歌上阅读了很多类似问题的答案,但我找不到适用于我的代码的解决方案,我想要要将图像 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 回答