using (SqlConnection con = new SqlConnection(contor))
{
con.Open();
lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
" CA01 where CA01.A0188=:CA01.A0188";
///cmd命令
SqlCommand cmd = new SqlCommand(lastStr, con);
cmd.Parameters.AddWithValue(":CA01.A0188", field.Value);
using (SqlDataReader datarader = cmd.ExecuteReader())
{
}
" CA01 where CA01.A0188=':CA01.A0188'"
字符型要用''引起来
select
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188=:'Y人事变动主表.人员id' cmd.Parameters.AddWithValue(field.FieldName, field.Value);
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188=':Y人事变动主表.人员id'兄台引号打错位置了
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188=':Y人事变动主表.人员id'" CA01 where CA01.A0188='@A'";
.Parameters.AddWithValue("@A", field.Value);
select
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188 =':Y人事变动附表.人员id'
':' 附近有语法错误。
select
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188=':Y人事变动主表.人员id'
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188 =':Y人事变动附表.人员id'你这后面是一个值吗???
如果是一个值应该没错的
select
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188 =':Y人事变动附表.人员id'
select
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188=':Y人事变动主表.人员id'哪里不一样吗??
.Parameters.AddWithValue("@A", field.Value);
using (SqlConnection con = new SqlConnection(contor))
{
con.Open();
lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
" CA01 where CA01.A0188='@name'";
///cmd命令
SqlCommand cmd = new SqlCommand(lastStr, con);
cmd.Parameters.AddWithValue("@name", field.Value);
using (SqlDataReader datarader = cmd.ExecuteReader())
{
}
lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
" CA01 where CA01.A0188=':CA01.A0188'";
cmd.Parameters.AddWithValue(":CA01.A0188", 2);
lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
" CA01 where CA01.A0188=':yyyy'";
cmd.Parameters.AddWithValue(":yyyy", 2);
第一个不错
第二个错
这是为什么
SqlCommand cmd = new SqlCommand(lastStr, con);
cmd.Parameters.AddWithValue("@A", field.Value);
using (SqlDataReader datarader = cmd.ExecuteReader())
{}
string lastStr=@"
SELECT
CA01.A_ID AS '变动次数',
CA01.A0188 AS '人员ID'
FROM CA01
WHERE CA01.A0188=:A0188";
cmd.Parameters.AddWithValue(":A0188", field.Value);
using (SqlDataReader datarader = cmd.ExecuteReader())
{
}
你多次调用 cmd.Parameters.AddWithValue 但是没清空 cmd.Parameters.Clear() lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
" CA01 where CA01.A0188='@CA01.A0188'";
cmd.Parameters.AddWithValue("@CA01.A0188", 2);
lastStr = "select CA01.A_id as '变动次数',CA01.A0188 as '人员id' from"+
" CA01 where CA01.A0188='@yyyy'";
cmd.Parameters.AddWithValue("@yyyy", 2);
就如同mysql的参数表示是问号而不是冒号,
也就是你的sql需要使用类似如下方式:string sql = "select * from Table where A=@A";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("A", 2);
select CA01.A_id as '变动次数' 这里有问题
改成 select CA01.A_id as "变动次数"
就可以了
as后边用""
但是where什么的值的后边比如 where id = '1'要用''
这个以前也搞死我了
CA01.A_id as '变动次数',
CA01.A0188 as '人员id' from CA01 where CA01.A0188=':Y人事变动主表.人员id'
oracle参数类似::param
...
" CA01 where CA01.A0188=':CA01.A0188'";