vs2008中c++ ado连接sql server数据库后如何使用带参数的sql语句
CoInitialize(NULL);_ConnectionPtrcon;HRESULThr=conCreateInstance(_uuidof(Connection))...
CoInitialize(NULL);
_ConnectionPtr con;
HRESULT hr=con CreateInstance(_uuidof(Connection));
_bstr_t strCon=" ";//数据库信息
con->Open(strCon,"","",adModeUnknown);
con->Execute("update Table_1 set name=‘x’ where id=@id“,NULL,adCmdText);
con->close();
return 0;
如何使sql语句带参数,输入id,自动使用上述sql语句 展开
_ConnectionPtr con;
HRESULT hr=con CreateInstance(_uuidof(Connection));
_bstr_t strCon=" ";//数据库信息
con->Open(strCon,"","",adModeUnknown);
con->Execute("update Table_1 set name=‘x’ where id=@id“,NULL,adCmdText);
con->close();
return 0;
如何使sql语句带参数,输入id,自动使用上述sql语句 展开
2个回答
展开全部
用vs2008 只会写C#的。。
C++不会啊
这是我C#的更新操作
public void EditAccount(Account bankAccount)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update BankAccount set ");
strSql.Append("AccountName=@AccountName,");
strSql.Append("CurrentAmount=@CurrentAmount,");
strSql.Append("IsCanceled=@IsCanceled");
strSql.Append(" where CardNo=@CardNo ");
SqlParameter[] parameters = {
new SqlParameter("@AccountName", SqlDbType.NVarChar,1024),
new SqlParameter("@CurrentAmount", SqlDbType.Decimal,9),
new SqlParameter("@IsCanceled", SqlDbType.Bit,1),
new SqlParameter("@CardNo", SqlDbType.NVarChar,100)};
parameters[0].Value = bankAccount.Cname;
parameters[1].Value = bankAccount.Csum;
parameters[2].Value = bankAccount.Cfreeze;
parameters[3].Value = bankAccount.Cid;
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
cmd.CommandType = CommandType.Text;
connection.Open();
cmd.Connection = connection;
cmd.CommandText = strSql.ToString();
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
}
}
}
C++不会啊
这是我C#的更新操作
public void EditAccount(Account bankAccount)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update BankAccount set ");
strSql.Append("AccountName=@AccountName,");
strSql.Append("CurrentAmount=@CurrentAmount,");
strSql.Append("IsCanceled=@IsCanceled");
strSql.Append(" where CardNo=@CardNo ");
SqlParameter[] parameters = {
new SqlParameter("@AccountName", SqlDbType.NVarChar,1024),
new SqlParameter("@CurrentAmount", SqlDbType.Decimal,9),
new SqlParameter("@IsCanceled", SqlDbType.Bit,1),
new SqlParameter("@CardNo", SqlDbType.NVarChar,100)};
parameters[0].Value = bankAccount.Cname;
parameters[1].Value = bankAccount.Csum;
parameters[2].Value = bankAccount.Cfreeze;
parameters[3].Value = bankAccount.Cid;
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
try
{
cmd.CommandType = CommandType.Text;
connection.Open();
cmd.Connection = connection;
cmd.CommandText = strSql.ToString();
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
catch (System.Data.SqlClient.SqlException e)
{
throw e;
}
}
}
}
更多追问追答
追问
c#的我找到了,就是c++不会啊。那个是c#的类,c++里没有。
追答
我帮你问问我朋友试试
C++有点难,不是很懂,找了个网页,你看看吧,似乎对你有帮助。
http://blog.csdn.net/zlhy_/article/details/8820979
还有一些相关的封装文章,应该都有些用
2014-07-22
展开全部
select * from 你要查询的表 where id='+@id+' 是想要这样的么?
更多追问追答
追问
什么sql语句都行,就是带参数如何设置。
追答
就是那样啊,那样写也可以啊,@id,就是你用接受传过来的参数的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询