Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 必须声明标量变量“@imgPicture”_C#_Asp.net_Sql - Fatal编程技术网

C# 必须声明标量变量“@imgPicture”

C# 必须声明标量变量“@imgPicture”,c#,asp.net,sql,C#,Asp.net,Sql,ASP.Net上的超级新手,很抱歉,如果这个问题被问了无数次,我已经在这里和google上阅读了很多类似问题的答案,但我找不到适用于我的代码的解决方案,我想将图像url保存到数据库中,这是不起作用的代码: if (imgPicture.ImageUrl != null) { String strConn = "Data Source=TOSHI;Initial Catalog=prueba;Integrated Securi

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

您为参数使用了错误的名称。它应该是@imgPicture,来自查询:

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

根据对该问题的评论,我认为整个if块的内容可以删除,您可以将以下内容放入主插页中:

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

您还需要将imagen添加到要插入查询的列列表的末尾,并将@imgPicture添加到参数。

不幸的是,这与asp.net无关,与您的查询无关

您的查询是:

Insert into curriculum (imagen) values      (@imgPicture)
它定义了参数@imgPicture

然后添加一个名为@imagen的参数,该参数将被忽略,但更重要的是,不要添加参数@imgPicture

你确定你不是指cmd.Parameters吗。AddWithValue@imgPicture,imgPicture.ImageUrl

您的查询如下:

string strQuery = "Insert into curriculum (imagen) values (@imgPicture)";
您将@imgPicture声明为变量

您需要在代码中使用该变量:

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

不,因为数据库上的字段名为imagen,所以asp代码上的图像字段名为imgPicture,这就是它们被命名的原因different@Ivelisse数据库列的名称无关紧要;这不是问题所在;问题是,您使用@imgPicture时没有任何声明,当我添加该行而不是我得到的行时,我无法将值NULL插入到“Nombre”列、表“prueba.dbo.courseum”中;列不允许空值。插入失败。声明已终止。使用我的行,我至少可以将列保存到数据库中,但ImagenURL列除外saved@Ivelisse这已经至少解释过一次了。执行插入时,需要为所有非null、非默认值、非隐式标识/timetamp/etc列提供值。您尚未提供Nombre的值;因此,我得到的是:不能将NULL值插入到“Nombre”列、表“prueba.dbo.currency”中;列不允许空值。插入失败。声明已终止。即使我在列Nombre上写了一些东西,但它是表中唯一不能为NULL的列。插入查询需要为所有NOTNULL列指定值。鉴于问题的上下文,无法告诉您完整答案,但至少:在课程图像中插入Nombre values@imgPicture、@Nombre,后跟cmd.Parameters。AddWithWalue@Nombre数字insert nombre正在工作,但在代码的另一部分中使用sqldatasource声明,如果我删除我在第一个问题上粘贴的代码,页面工作正常,将所有文本框保存到数据库中,但是,当我添加代码以将图像url保存到数据库中时是不工作的感谢帮助,但不是,更新不是我需要的,我正在做的是为用户创建一个配置文件,他们上传图片,并显示在图像字段中,用他们的信息填充所有文本框和下拉列表,当他们单击提交按钮时,信息存储到数据库中,当他们这样做时,我还希望imageurll进入数据库工具,比如我的更新?不能给你一个确切的,再一次,我需要更多的上下文。