[英]Using a SQL Query Result in another Query
所以我填写了一个名字列表的组合框。 现在点击我执行的其中一个名字后
SELECT Id FROM FIRSTTABLE WHERE Name ='" + ClientComboBox.Text + "'
现在我想获取该Id并在SECONDTABLE中执行另一个Sql查询。 但是,SECONDTABLE Id称为ClientId。 另外,我想只填充一次datagridview。 所以我不希望事件显示FIRSTTABLE结果,只有我从SECONDTABLE得到的结果。 不确定这一切是否有意义,所以如果您有任何问题请告诉我。
private void ClientComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
var myConnection = new SqlConnection(DBConnectionBox.Text);
//myConnection.Open();
var Cmd = new SqlCommand("SELECT Id FROM FIRSTTABLE WHERE Name ='" + ClientComboBox.Text + "';");
Cmd.Connection = myConnection;
Cmd.CommandType = CommandType.Text;
var Cmd2 = new SqlCommand("SELECT * FROM SECONDTABLE WHERE ClientId ='"+"';");
Cmd2.Connection = myConnection;
Cmd2.CommandType = CommandType.Text;
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(Cmd);
SqlDataAdapter sqlDataAdap2 = new SqlDataAdapter(Cmd2);
DataTable dtRecord = new DataTable();
DataTable dtRecord2 = new DataTable();
sqlDataAdap.Fill(dtRecord);
sqlDataAdap2.Fill(dtRecord2);
ClientInfoDGV.DataSource = dtRecord;
ClientInfoDGV.DataSource = dtRecord2;
}
听起来你想要使用内连接。
var Cmd = new SqlCommand(@"SELECT Id, SECONDTABLE.* FROM FIRSTTABLE
JOIN SECONDTABLE ON FIRSTTABLE.Id = SECONDTABLE.ClientId
WHERE Name ='" + ClientComboBox.Text + "';")
在单个查询中像这样
SELECT *
FROM secondtable
WHERE clientid IN (SELECT f.id
FROM firsttable f
WHERE f.NAME = "clientcombobox.text")
或Exists
(优先)
SELECT *
FROM secondtable s
WHERE EXISTS(SELECT 1
FROM firsttable f
WHERE s.clientid = f.id
AND f.NAME = "clientcombobox.text")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.