OleDbConnection con = DB.creatOleCon();
                con.Open();
                string comd = string.Format
                    ("insert into zb_sjk(文件名称,文件编号,下发时间,截至时间,涉及部件,涉及飞机,涉及专业,执行单位,登记用户)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');insert into gznr(文件编号)“
                    this.textBox1.Text, textBox2.Text, dateTimePicker1.Text, dateTimePicker2.Text, comboBox1.Text, textBox5.Text, comboBox2.Text, textBox6.Text, textBox7.Text,textBox2);
                OleDbCommand com = DB.creatOleComd(comd, con);刚刚开始学习,不知道哪里错了一直提示SQL语句后还有字符,运行不了,各位大神该怎么改呀?急

解决方案 »

  1.   

    实在不行就拆成两行 执行吧。> Access 的 SQL语法 好像 实现得比较简单。
    > Access 这类文件数据库 好像都不适合多线程操作。
    > 好像还 依赖 微软的Office 的 OleDb ??
    如果可以,还是用 SQLite 吧,开源、跨平台 的 文件数据库 
    一个程序集搞定,发布到客户端 也不用担心 程序集文件缺失。
      

  2.   

    你原来的 sql 里面有一些中文的符号, 另外第2个语句都没有给值。
    改成下面的试试:
    OleDbConnection con = DB.creatOleCon();
    con.Open();
    string comd = string.Format
    (@"insert into zb_sjk(文件名称,文件编号,下发时间,截至时间,涉及部件,涉及飞机,涉及专业,执行单位,登记用户)
                   values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');
                   insert into gznr(文件编号) VALUES('{9}');"
    , this.textBox1.Text
    , textBox2.Text
    , dateTimePicker1.Text
    , dateTimePicker2.Text
    , comboBox1.Text
    , textBox5.Text
    , comboBox2.Text
    , textBox6.Text
    , textBox7.Text,
    , textBox2.Text
    );
    OleDbCommand com = DB.creatOleComd(comd, con);不过, 按正规的来说, 最好是用 AccessHelper , 实现参数化:
    https://www.cnblogs.com/hyqing/p/3704047.html
      

  3.   

    还是不行,提示在 SQL 语句结尾之后找到字符。刚刚那个值应该是复制的时侯丢了
      

  4.   


    不好意思, 看了一下, Access 无法一次执行多条语句, 你还是改成分开执行吧。
      

  5.   

    OleDbConnection con = DB.creatOleCon();
     con.Open();
     string comd1 = "("insert into  zb_sjk (文件名称,文件编号,下发时间,截至时间,涉及部件,涉及飞机,涉及专业,执行单位,登记用户)values  (textBox1.Text, textBox2.Text, dateTimePicker1.Text, dateTimePicker2.Text, comboBox1.Text, textBox5.Text, comboBox2.Text, textBox6.Text, textBox7.Text)";
     string comd2="insert into gznr(文件编号) values(textBox2.text)"; 
    OleDbCommand com1 = DB.creatOleComd(comd1, con);
    OleDbCommand com2 = DB.creatOleComd(comd2, con);