?是什么? ///////string strSQL = "SELECT id FROM [user] WHERE aaa = @aaa";在OleDb中要用?代替@aaa
用?号 比如string strSQL = "SELECT id FROM [user] WHERE aaa = ?aaa"; 这样吗?
我试过用@aaa不会出错,但你添加参数要按@aaa出现的顺序来参加,所以跟用?一样 比如SELECT id FROM [user] WHERE aaa = @aaa and bbb=@bbb 你要先添加@aaa,再添加@bbb 用?号就是这样 SELECT id FROM [user] WHERE aaa = ? and bbb=?
不按顺序会出错吗?sql server里不需要按顺序的
我晕 我一直都是这样用的!只是注意,参数的添加顺序一定要按照 SQL语句里面的参数顺序
string strSQL = "SELECT id FROM [user] WHERE aaa = ?";不按顺序会出错的ado.net支持两种参数,命名参数和位置参数。 sqlclient使用的是命名参数,也就是@aaa. oledbclient使用的是位置参数,也就是?
用?号 比如string strSQL = "SELECT id FROM [user] WHERE aaa = ?aaa"; 这样吗?//////////////////string strSQL = "SELECT id FROM [user] WHERE aaa = ?"; Conn.Open(); OleDbCommand Cmd = new OleDbCommand(strSQL, Conn); Cmd.Parameters.Add(new OleDbParameter("@aaa", OleDbType.Char, 20)).Value = aaa; OleDbDataReader Rd = Cmd.ExecuteReader();
access是不能用的
数据库访问主要有两种方式,第一种是普遍的sql语句访问。第二种是“存储过程”,一般是大型数据库如sql server才用。
所以在访问access时只能用sql方式访问,但使用@aaa作为参数是可以的,而且这样很好,避免了书写sql语句时单引号和双引号带来的麻烦。
例如这样:aaa="yebe";
OleDbConnection Conn = new OleDbConnection(strConn);
string strSQL = "SELECT id FROM [user] WHERE aaa = @aaa";
Conn.Open();
OleDbCommand Cmd = new OleDbCommand(strSQL, Conn);
Cmd.Parameters.Add(new OleDbParameter("@aaa", OleDbType.Char, 20)).Value = aaa;
OleDbDataReader Rd = Cmd.ExecuteReader();
///////string strSQL = "SELECT id FROM [user] WHERE aaa = @aaa";在OleDb中要用?代替@aaa
比如string strSQL = "SELECT id FROM [user] WHERE aaa = ?aaa";
这样吗?
比如SELECT id FROM [user] WHERE aaa = @aaa and bbb=@bbb
你要先添加@aaa,再添加@bbb
用?号就是这样
SELECT id FROM [user] WHERE aaa = ? and bbb=?
sqlclient使用的是命名参数,也就是@aaa.
oledbclient使用的是位置参数,也就是?
比如string strSQL = "SELECT id FROM [user] WHERE aaa = ?aaa";
这样吗?//////////////////string strSQL = "SELECT id FROM [user] WHERE aaa = ?";
Conn.Open();
OleDbCommand Cmd = new OleDbCommand(strSQL, Conn);
Cmd.Parameters.Add(new OleDbParameter("@aaa", OleDbType.Char, 20)).Value = aaa;
OleDbDataReader Rd = Cmd.ExecuteReader();