插入操作:
//ODBC 数据库表示方式
QSqlQuery query;
query.prepare( “insert into student (id, name) ”
“values (:id, :name) ”);
query.bindValue(0, m_id);
query.bindValue(1, m_name);
query.exec();
//Oracle 表示方式
query.prepare( “insert into student (id, name) ”
“values (?, ?) ”);
query.bindValue(0, m_id);
query.bindValue(1,m_name);
query.exec();以上两种方式,插入不了数据.
由于需要使用变量,还有哪种种插入操作使用。谢谢!!
//ODBC 数据库表示方式
QSqlQuery query;
query.prepare( “insert into student (id, name) ”
“values (:id, :name) ”);
query.bindValue(0, m_id);
query.bindValue(1, m_name);
query.exec();
//Oracle 表示方式
query.prepare( “insert into student (id, name) ”
“values (?, ?) ”);
query.bindValue(0, m_id);
query.bindValue(1,m_name);
query.exec();以上两种方式,插入不了数据.
由于需要使用变量,还有哪种种插入操作使用。谢谢!!
"insert into student (id, `name`) values ('" + m_id+ "', '" + m_name+ "')" ;参数方式是可以的, 我沒用过QT, c# 就可以通过参数实现.
C#参数方式示例: STRING SQL = "insert into student (id, `name`) values(?id, ?name)";
OdbcCommand cmd = NEW OdbcCommand(SQL, conn);
cmd.Parameters.Add("?id",OdbcType.VarChar).Value=m_id;
cmd.Parameters.Add("?name", OdbcType.VarChar).Value = m_name;
try
{
conn.Open();
INT num = cmd.ExecuteNonQuery();
RETURN num;
}
catch (Exception ex)
{
RETURN 0;
}
finally
{
conn.Close();
conn.Dispose();
}
你將参数表示 (:id, :name) 改成 (?id, ?name)) 试试了.
"insert into student (id, `name`) values ('" + m_id+ "', '" + m_name+ "')" ;
如果变量类型是日期类型,这种方式不行啊。
date 类型, 对应插入的日期格式化成字符串 ‘yyyy-MM-dd’
datetime 类型, 对应插入的日期格式化成字符串 ‘yyyy-MM-dd HH:mm:ss’