string mySelectQuery = "INSERT INTO Tran VALUES (" + tranid + ",'" + transtr + "'," + choice + ",'" + dt + "')";Access
string mySelectQuery = "INSERT INTO Tran VALUES (" + tranid + ",'" + transtr + "'," + choice + ",#" + dt + "#)";

解决方案 »

  1.   

    to:cnhgj(戏子) (一个人睡)
    我刚复制了你的语句后,编译正确。我不明白的是为什么有的参数要加单引号,有的不用呢??
      

  2.   

    string mySelectQuery =
      string.Format("INSERT INTO Tran VALUES ({0},'{1}','{2}')",
      tranid,transtr,choice,dt);这样写更清晰啦。SQL语句中,数值型的字段不要加引号,字符型、日期型的字段要加单引号。
      

  3.   

    写错了,应该是这样:
    string mySelectQuery =
      string.Format("INSERT INTO Tran VALUES ({0},'{1}',{2},'{3}')",
      tranid,transtr,choice,dt);
      

  4.   

    执行时出问题了System.Data.SqlClient.SqlException
    是怎么回事?
      

  5.   

    问题变成
    在关键字 'Tran' 附近有语法错误!郁闷死了,救命啊!
      

  6.   

    System.Data.SqlClient.SqlException用try,catch拦截,messagebox显示一下,这个一场报错超级准确。我写的表达式不对的时候,都通过这个异常调试解决的。
      

  7.   

    终于解决了!问题出在表的名字Tran上,这是sqlserver的关键字$%&#@*,改了就ok啦!谢谢 wuyi8808(C#)System.DateTime.Now.ToString  还有 cnhgj(戏子) (一个人睡) 仗义执言 :)
      

  8.   

    统统都用''引起来就行了,
    常用的数据类型,都可以由字符串转换过来。
    正常的是 “数字型”(包括 整数 、小数、货币 了什么的) 的 不用 '' '' 就相当于 "" 里面的都是字符串 时间型的 要用'' 引起来当成字符串传进去 ,然后由SQL转成时间型的,前提是字符串的格式要正确。
      

  9.   

    表名、字段名,用中括号括起来就不怕和关键字重
    INSERT INTO [Tran] VALUES (...)