菜鸟,随便写一个字符串然后放到string 型变量m_database里面,然后在mysql里面建表的时候调用这个变量,看见网上有段建表的代码
sqlstr ="CREATE TABLE IF NOT EXISTS user_info";
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";user_info 是表的名字,现在把他用 m_database 代替但是建不出表
sqlstr ="CREATE TABLE IF NOT EXISTS m_database ";那应该怎么改呢?
sqlstr ="CREATE TABLE IF NOT EXISTS user_info";
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";user_info 是表的名字,现在把他用 m_database 代替但是建不出表
sqlstr ="CREATE TABLE IF NOT EXISTS m_database ";那应该怎么改呢?
解决方案 »
- mysql备份消耗时间
- 问以下Deadlock 如何产生并如何解决
- 问题奇怪呀,我查询name='牛柳'为何name='牛霖'的也会列出来呀!
- Delphi下调用MySql的存储过程疑问:只能采用TQuery控件,而不能采用TADOStoredProc控件吗(采用它总是报语法错误)?
- 请问,phpmyadmin出现的问题
- mysql数据库表中字段个数限制
- PhpMyAdmin的存储过程执行时运行结果只显示一条是什么原因?
- 为何GROUP BY加上索引更慢呢?
- 求按日取出当日最大值的语句
- 登录不进去,是什么原因?
- mysql有没有类似with NOLOCK的表达
- Show Variables Like 'BaseDir%' 求BaseDir的地址值
sqlstr ="CREATE TABLE IF NOT EXISTS "+m_database;
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";
还有个问题,上面的代码在新建的表里分别建了3列user_id,user_name,user_second_sum,我想把其中的一列函数类型变为float型怎么改代码呢
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database;这段代码可以实现建表
如果在建几个float型的列,写成下面这样?
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database(t1 float,t2 float);
我试了下,好像不对。
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum float NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";
大侠,单纯写这么一句
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database+"(t1 float,t2 float)";
建表失败,我把后面那段改成
sqlstr+="(";
sqlstr+="t1 FLOAT UNSIGNED NOT NULL ',";
sqlstr+="t2 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t3 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t4 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t5 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t6 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t7 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t8 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t9 FLOAT UNSIGNED NOT NULL ";
sqlstr+=");";
也不行。
现在可以确认
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database;
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";
可以成功建表。
Query OK, 0 rows affected (0.06 sec)mysql>
可以建表
你将sqlstr中的内容显示出来看看
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database+"(t1 float,t2 float)";
dlg.m_database是什么,变量?
你写的那个是在mysql里写的。dlg.m_database是个变量。开始我可能没说清楚。
用vc编了个程序,主界面有个按键“存入数据库”,程序运行会产生一些数据,然后点那个按键,会弹出个对话框,提示你输入数据库的表名,dlg.m_database就绑定的的那个对话框。然后点确定之后,就会建个新表,名字就是刚才键入的名字。程序会产生9列float型的数据
sqlstr ="CREATE TABLE IF NOT EXISTS " +dlg.m_database;
sqlstr+="(";
sqlstr+="t1 float NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique ID',";
sqlstr+="t2 float NOT NULL DEFAULT 0 COMMENT 't2'";
sqlstr+="t3 float NOT NULL DEFAULT 0 COMMENT ' t3'";
sqlstr+="t4 float NOT NULL DEFAULT 0 COMMENT 't4'";
sqlstr+=" t5 float NOT NULL DEFAULT 0 COMMENT 't5'";
sqlstr+=" t6 float NOT NULL DEFAULT 0 COMMENT 't6'";
sqlstr+=" t7 float NOT NULL DEFAULT 0 COMMENT 't7'";
sqlstr+=" t8 float NOT NULL DEFAULT 0 COMMENT 't8'";
sqlstr+=" t9 float NOT NULL DEFAULT 0 COMMENT 't9'";
sqlstr+=");";按着你的,我改成这样可以么?试了下,建表失败……
sqlstr+="(";
sqlstr+="t1 float NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique ID',";
sqlstr+="t2 float NOT NULL DEFAULT 0 COMMENT 't2',";
sqlstr+="t3 float NOT NULL DEFAULT 0 COMMENT ' t3',";
sqlstr+="t4 float NOT NULL DEFAULT 0 COMMENT 't4',";
sqlstr+=" t5 float NOT NULL DEFAULT 0 COMMENT 't5',";
sqlstr+=" t6 float NOT NULL DEFAULT 0 COMMENT 't6',";
sqlstr+=" t7 float NOT NULL DEFAULT 0 COMMENT 't7',";
sqlstr+=" t8 float NOT NULL DEFAULT 0 COMMENT 't8',";
sqlstr+=" t9 float NOT NULL DEFAULT 0 COMMENT 't9'";
sqlstr+=");";
楼主啊,这是基本的SQL语法啊。另外建议不要贴你的C#的代码, 你可以直接断点调试的时候,看一下sqlstr 的内容是什么,然后贴出来。否则别人还要分析你的C代码。
sqlstr+="t2 float NOT NULL DEFAULT 0 COMMENT 't2'";你的逗号在哪里