首页 新闻 会员 周边

子表与DataGridView控件绑定失败

0
悬赏园豆:80 [已关闭问题] 关闭于 2013-10-07 11:06
        private BindingManagerBase bm1 = null;

private void DataScanInForm6_Load(object sender, EventArgs e)
{
string sqlString1 = "select * from 客户";
string sqlString2 = "select * from 订单";
string[] sqlStrings = new string[] { sqlString1, sqlString2 };
string[] tableNames = new string[] { "客户", "订单" };

DataSet ds = new DataSet();
ds = Rabbit.DBUtility.DBHelperOleDb.Query(sqlStrings, tableNames);

DataColumn parentColumn = new DataColumn();
DataColumn childColumn = new DataColumn();
parentColumn = ds.Tables["客户"].Columns["ID"];
childColumn = ds.Tables["订单"].Columns["客户 ID"];

DataRelation relation = new DataRelation("每一位客户的订单", parentColumn, childColumn);
ds.Relations.Add(relation);

bm1 = this.BindingContext[ds, "客户"];

//绑定
dgvClient.DataBindings.Add("datasource", ds, "客户");
dgvOrder.DataBindings.Add("datasource", ds, "客户.每一位客户的订单");
}

我的窗体上有两个DataGridView 控件 ,一个显示客户表(父表),另一个显示与客户表中选中的记录所对应的客户的订单,但每次执行到最后一句,就有错误提示——‘列“每一位客户的订单”不属于表 客户。’ 这样写有什么问题吗?望各位大侠给予指点。

弗瑞斯达的主页 弗瑞斯达 | 初学一级 | 园豆:126
提问于:2012-03-24 12:54
< >
分享
所有回答(1)
0

 masterDataGridView.DataSource = masterBindingSource;
detailsDataGridView.DataSource = detailsBindingSource;
GetData();
private void GetData()
{
try
{
// Specify a connection string. Replace the given value with a
// valid connection string for a Northwind SQL Server sample
// database accessible to your system.
String connectionString =
"Integrated Security=SSPI;Persist Security Info=False;" +
"Initial Catalog=Northwind;Data Source=localhost";
SqlConnection connection = new SqlConnection(connectionString);
// Create a DataSet.
DataSet data = new DataSet();
data.Locale = System.Globalization.CultureInfo.InvariantCulture;
// Add data from the Customers table to the DataSet.
SqlDataAdapter masterDataAdapter = new
SqlDataAdapter("select * from Customers", connection);
masterDataAdapter.Fill(data, "Customers");
// Add data from the Orders table to the DataSet.
SqlDataAdapter detailsDataAdapter = new
SqlDataAdapter("select * from Orders", connection);
detailsDataAdapter.Fill(data, "Orders");
// Establish a relationship between the two tables.
DataRelation relation = new DataRelation("CustomersOrders",
data.Tables["Customers"].Columns["CustomerID"],
data.Tables["Orders"].Columns["CustomerID"]);
data.Relations.Add(relation);
// Bind the master data connector to the Customers table.
masterBindingSource.DataSource = data;
masterBindingSource.DataMember = "Customers";
// Bind the details data connector to the master data connector,
// using the DataRelation name to filter the information in the
// details table based on the current row in the master table.
detailsBindingSource.DataSource = masterBindingSource;
detailsBindingSource.DataMember = "CustomersOrders";
}
catch (SqlException)
{
MessageBox.Show("To run this example, replace the value of the " +
"connectionString variable with a connection string that is " +
"valid for your system.");
}
}
無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-24 14:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册