C# ql@sql要执行它,OP实际上并没有比较列名,正如他在这里所说的:“我正在从四个字段相等的students表中获取记录……”LeWoogush没有其他理由让他在那里使用表别名。他要么错误地使用了表别名(在这种情况下应该删除),要么别名是正确的(在这种情况
C# ql@sql要执行它,OP实际上并没有比较列名,正如他在这里所说的:“我正在从四个字段相等的students表中获取记录……”LeWoogush没有其他理由让他在那里使用表别名。他要么错误地使用了表别名(在这种情况下应该删除),要么别名是正确的(在这种情况,c#,sql,sql-server,C#,Sql,Sql Server,ql@sql要执行它,OP实际上并没有比较列名,正如他在这里所说的:“我正在从四个字段相等的students表中获取记录……”LeWoogush没有其他理由让他在那里使用表别名。他要么错误地使用了表别名(在这种情况下应该删除),要么别名是正确的(在这种情况下应该删除单引号)。所以这是一个关于他真正意图的猜测游戏。@slugster第二部分代码中的getRowCellValue和“sql查询是students表和units\u分配表之间的内部联接”实际上很清楚用户正在从表中获取一个条目,以查找另一
ql@sql要执行它,OP实际上并没有比较列名,正如他在这里所说的:“我正在从四个字段相等的students表中获取记录……”LeWoogush没有其他理由让他在那里使用表别名。他要么错误地使用了表别名(在这种情况下应该删除),要么别名是正确的(在这种情况下应该删除单引号)。所以这是一个关于他真正意图的猜测游戏。@slugster第二部分代码中的getRowCellValue和“sql查询是students表和units\u分配表之间的内部联接”实际上很清楚用户正在从表中获取一个条目,以查找另一个表中包含与这4个单元格相同内容的所有数据。@slugster第一个错误已解决,但出现了另一个错误:关键字“and”附近的语法不正确--有什么想法吗?你可以用它来帮助缓解sql注入攻击。但是,您必须添加一层inderection并从
@sql='…运行查询,其中s.course_缩写=ua.+QUOTENAME(@val1)+'和s.course_name=ua.+QUOTENAME(@val2)+'和…'
将查询构建到一个临时变量中,然后执行exec sp_executesql@sql
来执行它OP实际上并没有比较列名,正如他在这里所说的那样:“我从四个字段相等的students表中获取记录…”LeWoogush没有其他理由让他在那里有表别名。他要么错误地使用了表别名(在这种情况下应该删除),要么别名是正确的(在这种情况下应该删除单引号)。所以这是一个关于他真正意图的猜测游戏。@slugster第二部分代码中的getRowCellValue和“sql查询是students表和units\u分配表之间的内部联接”实际上很清楚用户正在从表中获取一个条目,以查找另一个表中包含与这4个单元格相同内容的所有数据。@slugster第一个错误已解决,但出现了另一个错误:关键字“and”附近的语法不正确--有什么想法吗?
public Marksheet(object val1, object val2, object val3, object val4)
{
InitializeComponent();
string connectionString = null;
SqlConnection conn;
connectionString = "Server=localhost\\SQLEXPRESS;Integrated security=SSPI;database=jms";
SqlDataAdapter sda = new SqlDataAdapter("Select s.course_abbreviation, s.course_name, s.month_of_admission, s.year_of_admission from students s where exists (select 1 from units_allocation ua where s.course_abbreviation=ua.'"+val1+"' and s.course_name=ua.'"+val2+"' and s.month_of_admission=ua.'"+val3 +"' and s.year_of_admission=ua.'"+val4+"'", connectionString);
conn = new SqlConnection(connectionString);
DataTable dt5 = new System.Data.DataTable();
sda.Fill(dt5); // Error occurs here
gridControl1.DataSource = dt5;
}
object val1;
object val2;
object val3;
object val4;
private void gridView1_RowClick(object sender, RowClickEventArgs e)
{
int rowHandle = e.RowHandle;
val1 = gridView1.GetRowCellValue(rowHandle, gridView1.Columns[2]);
val2 = gridView1.GetRowCellValue(rowHandle, gridView1.Columns[3]);
val3 = gridView1.GetRowCellValue(rowHandle, gridView1.Columns[4]);
val4 = gridView1.GetRowCellValue(rowHandle, gridView1.Columns[5]);
Marksheet marksheet = new Marksheet(val1, val2, val3, val4);
marksheet.Show();
}
where s.course_abbreviation=ua.'"+val1+"'
where s.course_abbreviation=ua."+val1+"
SqlDataAdapter sda = new SqlDataAdapter(
"Select s.course_abbreviation, s.course_name, s.month_of_admission, s.year_of_admission " +
"from students s " +
"where exists (select 1 from units_allocation ua " +
"where s.course_abbreviation=ua."+val1+" and s.course_name=ua."+val2+" and s.month_of_admission=ua."+val3 +" and s.year_of_admission=ua."+val4+""
, connectionString);
select s.course_abbreviation, s.course_name, s.month_of_admission, s.year_of_admission
from students s
where exists (
select 1
from units_allocation ua
where s.course_abbreviation='val1'
and s.course_name='val2'
and s.month_of_admission='val3'
and s.year_of_admission='val4'
)
select s.*, ua.*
from students s
inner join units_allocation ua
on ua.[foreign_key_column] = s.[primary_key_column]
where s.course_abbreviation='val1'
and s.course_name='val2'
...etc...