我想知道是否有人可以帮助我。我正在尝试使用sql语句填充组合框。我能够做到这一点,然后我想基于第一个组合框的占位符填充下一个组合框,我将必须连接表一起用于SQL命令。我希望这是有道理的。这是我的代码,如果有人可以建议帮助,那将不胜感激!
对于第一个组合框
private void btn_Customer_Click(object sender, EventArgs e)
{
conn = new OleDbConnection(conString);
string sqlcommand = @"SELECT custid, title + "" "" + firstname + "" ""+ lastname as name FROM Customer;";
daItems = new OleDbDataAdapter(sqlcommand, conn);
daItems.Fill(dtItems);
cmbo_Customer.DataSource = dtItems;
cmbo_Customer.DisplayMember = "name";
cmbo_Customer.ValueMember = "custid";
cmbo_Customer.SelectedIndex = -1;
}
现在我想根据custID占位符填充以下组合框。
private void btn_ISA_Click(object sender, EventArgs e)
{
try
{
OleDbCommand dbcmd = conn.CreateCommand();
dbcmd.CommandText = @"SELECT name FROM account INNER JOIN product ON account.prodid = product.prodid ;";
dbcmd.Parameters.AddWithValue("name", cmbo_ISA.SelectedValue);
}
catch (Exception ex)
{
// write exception info to log or anything else
MessageBox.Show("Error occured!");
}
}
答案 0 :(得分:1)
根据评论,您的第二个查询:
SELECT p.name
FROM account a
INNER JOIN product p ON a.prodid = p.prodid
WHERE a.custId = @custId
(使用表名的别名以便更容易消除歧义)需要:
@custId
其中OleDbCommand
是您添加到@name
的参数的占位符。
但是 SQL中参数的语法(@name
)依赖于数据库引擎(例如,SQL Server使用?
但是Oracle使用public function setSchoolConnection($id) {
$school = School::find($id);
if ( $school ) {
config(['database.mysql' => [
'database' => $school->database,
'username' => $school->username,
'password' => $school->password
]]);
}
}
并依赖于参数 1 的排序,并且您没有指定要定位的数据库引擎。
1 自从我上次使用Oracle以来,Oracle可能已经改变了这一点。