Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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# 更改DropDownlist时,没有为一个或多个必需参数提供值_C#_Asp.net - Fatal编程技术网

C# 更改DropDownlist时,没有为一个或多个必需参数提供值

C# 更改DropDownlist时,没有为一个或多个必需参数提供值,c#,asp.net,C#,Asp.net,总共有两个下拉列表 从数据库中获取值,如: 下拉列表1产品 冰淇淋 巧克力 冷饮 如果从第一个下拉列表中选择了1个冰淇淋,它将显示 下降2个品种 香草 草莓 芒果 如果从第一个下拉列表中选择1个巧克力,则会显示 下降2个品种 黑巧克力 牛奶巧克力 焦糖朱古力 其他项目应清除并仅显示上述内容 使用的代码 这方面的问题 ...where Emp_Name = txtval1; 如果txtval1是一个字符串,则将其用作Emp_Name='txtval1'。这不是有效的语法。在这种情况下,OLEDB

总共有两个下拉列表

从数据库中获取值,如:

下拉列表1产品

冰淇淋 巧克力 冷饮 如果从第一个下拉列表中选择了1个冰淇淋,它将显示

下降2个品种

香草 草莓 芒果 如果从第一个下拉列表中选择1个巧克力,则会显示

下降2个品种

黑巧克力 牛奶巧克力 焦糖朱古力 其他项目应清除并仅显示上述内容

使用的代码 这方面的问题

...where Emp_Name = txtval1;
如果txtval1是一个字符串,则将其用作Emp_Name='txtval1'。这不是有效的语法。在这种情况下,OLEDB提供者认为这个txtval1是一个参数,而您并没有为此提供任何值

您可以将此值设置为参数并添加到命令中,如

string st = "select Emp_Ph_No from emp where Emp_Name = ?";
OleDbCommand dbc = new OleDbCommand(st, db);
dbc.Parameters.AddWithValue("?", txtval1);
在我的示例中,我使用了AddWithValue,但您没有。使用.Add重载指定参数OleDbType及其大小

也可以使用自动处理连接、命令和读取器,而不是手动调用ind.Close或.dispose方法

using(var db = new OleDbConnection(str))
using(var dbc = db.CreateCommand)
{
    // Set your CommandText.
    // Add your parameter value.

    using(var read = dbc.ExecuteReader())
    {
       //
    }
}

您确定此代码导致了该错误吗?我在您的SQL中没有看到任何实际参数,但我确实看到了一个语法错误,您试图在字符串中使用C变量。如果我这样使用,则表示字符串st=从Emp中选择Emp\u Ph\u No,其中Emp\u Name=DropDownList1.SelectedValue;;这仍然是一个语法错误。不能在这样的字符串中使用变量。您也不应该使用SQL语句,这将是一个SQL注入漏洞。Soner在下面的回答显示了如何向SQL语句添加值。通过断点检查得到txtval=2和txtval 1=Ice Cream,但它产生了一个错误。我不知道如何描述这个问题。你根本上误解了C和SQL是如何工作的。老实说,我建议大家先看一些关于这个主题的入门教程。工作!!谢谢你的帮助。修改为。为该语言添加新内容非常非常感谢!
using(var db = new OleDbConnection(str))
using(var dbc = db.CreateCommand)
{
    // Set your CommandText.
    // Add your parameter value.

    using(var read = dbc.ExecuteReader())
    {
       //
    }
}