使用RIGHT JOINT将两个表连接到一个datagridview

时间:2013-07-17 06:04:52

标签: c# sql join datagridview

我在下面有这个代码,它应该连接2个表(ZAJSLUZ和KLISLUZ),但我需要添加条件,只选择那些来自ZAJSLUZ的列AKCE = zakce.Text

有人会改进我的代码吗? 它给我的错误是“语法接近=”

DataTable dt = new DataTable();
//SqlDataAdapter SDA = new SqlDataAdapter("select * from zajsluz",spojeni);
SqlDataAdapter SDA = new SqlDataAdapter("SELECT     zajsluz.akce ,zajsluz.text,klisluz.pocet FROM zajsluz RIGHT JOIN klisluz ON zajsluz.ID=klisluz.id WHERE zajsluz.akce="+zakce.Text, spojeni);
SDA.Fill(dt);
dtg_ksluzby.DataSource = dt;

5 个答案:

答案 0 :(得分:1)

像这样改变你的行。

SqlDataAdapter SDA = new SqlDataAdapter("SELECT     zajsluz.akce ,zajsluz.text,klisluz.pocet FROM zajsluz RIGHT JOIN klisluz ON zajsluz.ID=klisluz.id WHERE zajsluz.akce='"+zakce.Text+"'", spojeni);

答案 1 :(得分:1)

...zajsluz.akce=+"zakce.Text,...

您可能想将其更改为

...zajsluz.akce='"+zakce.Text+"'",...

答案 2 :(得分:1)

将您的行更改为

SqlDataAdapter SDA = new SqlDataAdapter("SELECT zajsluz.akce ,zajsluz.text,klisluz.pocet FROM zajsluz RIGHT JOIN klisluz ON zajsluz.ID=klisluz.id WHERE zajsluz.aakce='" + zakce.Text + "'", spojeni);

答案 3 :(得分:1)

检查zakce.Text之前是否为有效字符串。

string sZakce = string.Empty;
if(zakce != null && zakce.Text != null)
{
  sZakce = zakce.Text;
}
string sQuery = string.Format("SELECT zajsluz.akce ,zajsluz.text,klisluz.pocet FROM zajsluz RIGHT JOIN klisluz ON zajsluz.ID=klisluz.id WHERE zajsluz.akce= '{0}'", sZakce)
SqlDataAdapter SDA = new SqlDataAdapter(sQuery, spojeni);

如果您使用DataAdapter,我还建议您使用using block,这样您的适配器就会自动处理。

using (SqlDataAdapter a = new SqlDataAdapter("SELECT * FROM table", con))
{
   // use your adapter a           
}

答案 4 :(得分:0)

SqlDataAdapter SDA = new SqlDataAdapter("SELECT     zajsluz.akce ,zajsluz.text,klisluz.pocet FROM zajsluz RIGHT JOIN klisluz ON zajsluz.ID=klisluz.id WHERE zajsluz.akce= '" +zakce.Text +"'", spojeni);