Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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# C(ADO.NET)将变量作为构造函数参数传递_C#_Sql Server - Fatal编程技术网

C# C(ADO.NET)将变量作为构造函数参数传递

C# C(ADO.NET)将变量作为构造函数参数传递,c#,sql-server,C#,Sql Server,我有两个表单、类别和产品,它们连接到一个数据源数据库 这个想法是,, 我希望应用程序首先加载表单类别,它显示一些关于现有类别的信息 当我点击按钮products时,products表单应显示categories表单中当前所选类别名称和ID的产品 我已经完成了几乎所有的工作,但我一直在思考如何将类别id和类别名称表单的值传递给products表单中的值,然后显示相应的数据 到目前为止,我创建了一个字符串变量,该变量的值为category文本框的textbox.text,然后在formproduct

我有两个表单、类别和产品,它们连接到一个数据源数据库

这个想法是,, 我希望应用程序首先加载表单类别,它显示一些关于现有类别的信息

当我点击按钮products时,products表单应显示categories表单中当前所选类别名称和ID的产品

我已经完成了几乎所有的工作,但我一直在思考如何将类别id和类别名称表单的值传递给products表单中的值,然后显示相应的数据

到目前为止,我创建了一个字符串变量,该变量的值为category文本框的textbox.text,然后在formproducts中创建了categories表单的对象

然后我编写了这段代码,它连接到数据库,并从表products中选择数据,其中id等于categories表单的id:

Categories cat = new Categories();
SqlCeConnection con = new SqlCeConnection("Data Source = Northwind40.sdf");
SqlCeDataAdapter da = new SqlCeDataAdapter("select * from products where [Category ID] = '" + cat.currID + "'", con);
DataSet ds = new DataSet();
da.Fill(ds, "Products");
BindingSource bs = new BindingSource(ds, "Products");
this.productsBindingSource = bs;
但这段代码只显示了一个结果,它只是所选类别id的第一个产品

那我该怎么做呢

此查询“从产品中选择*,其中[Category ID]。。。may只返回一行。 尝试替换以下行:

 //SqlCeDataAdapter da = new SqlCeDataAdapter("select * from products where [Category ID] = '" + cat.currID + "'", con);
这一行:

SqlCeDataAdapter da = new SqlCeDataAdapter("select * from products", con);

确保一个类别有多个项目。

这里的问题是您没有使用正确的类别表单实例。您已经创建了一个新实例,该实例中没有用户将选择的任何ID值

一种方法是在产品形式中使用参数化构造函数。然后,在类别窗体中的产品按钮的按钮单击事件上:

Product productForm = new ProductForm("send selected values here");
在产品表单构造函数中

string _selectedValues;
private Product(){
// Code here
}

public Product(string selectedValues):this(){
_selectedValues = selectedValues;
}

您可以根据需要选择参数的数据类型。

这是什么。productsBindingSource?此数据绑定到哪个控件?表单本身并不显示某些内容,它只是控件的容器。将数据绑定到什么?它是gridview吗?这只是一个测试用例。这绝对不能解决问题。作为评论。