OleDbCommand cmd = new OleDbCommand("Insert Into Tuser(username,password,sex,myurl,qq,msn,name,tel,address,company,dept) Values(@username,@password,@sex,@myurl,@qq,@msn,@name,@tel,@address,@company,@dept)",Conn);
cmd.Parameters.Add(new OleDbParameter("@username",OleDbType.Char,50));
cmd.Parameters["@username"].Value = t.username;
....
cmd.ExecuteNonQuery();//这里出错了
Conn.Close();----
现在我怎么样取得cmd 到底执行的sql是什么?

解决方案 »

  1.   

    出的什么错误???有可能参数的类型搞错了

    cmd.CommandText;看看Sql
      

  2.   

    因为OleDb.NET数据提供程序不支持在向SQL语句或存储过程传递参数时使用命名参数。
      

  3.   

    OleDbCommand cmd = new OleDbCommand("Insert Into Tuser(username,password,sex,myurl,qq,msn,name,tel,address,company,dept) Values(@username,@password,@sex,@myurl,@qq,@msn,@name,@tel,@address,@company,@dept)",Conn);
    只是这段代码里面的参数
      

  4.   

    try
    {
    cmd.ExecuteNonQuery();}
    catch(Exception e)//在这里看出错信息.
    {}
    final
    {Conn.Close();}
    另外在.NET里可以用Sql Server专门的类
      

  5.   

    ("Insert Into Tuser(username,password,sex,myurl,qq,msn,name,tel,address,company,dept) Values(?username,?password,?sex,?myurl,?qq,?msn,?name,?tel,?address,?company,?dept)")把"@"改成"?"试试...
      

  6.   

    我是楼主:提示的是 System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
    问题已解决,将password 改为[password]即可  可能是关键字缘故吧。总结: 太不方便调试了。  
      

  7.   

    是不是没有方法可以取出conn 最后执行的实际sql 是什么?
      

  8.   

    user\database\password都是关键字,还是vs2003版本的支持不好
      

  9.   

    调试一下.看看你生成的sql对不对
      

  10.   

    我明白了,你把字段名设成一些系统保留的词了,建议加个自己的词头,比如HPassword以免重复.重复的话,系统会加[]把你的名字框起来的.