如下C#代码中 SQL是sql Sever语法:
            SqlCommand cmd = new SqlCommand();
    ...
            cmd.CommandText = "INSERT INTO [table1] (userID, userName) VALUES (@userID, @userName)"           
            cmd.Parameters.Add("userID",    10011);
            cmd.Parameters.Add("userName",  "csShooter");
请问如果把这条件SQL改成Oracle语法?  
要求还是可以通过cmd.Parameters.Add("userID",    10011)传递参数给.
查了一下,说oracle还支持这种用法?...

解决方案 »

  1.   

    INSERT INTO table1(userID, userName) VALUES(@userID, @userName)
      

  2.   

    insert into table1(userID,userName) values(&userID,&userName)
      

  3.   

    insert into table1(userid,username) values(10011,'csShooter');
      

  4.   

     -- 改一下:
                SqlCommand cmd = new SqlCommand(); 
        ... 
                cmd.CommandText = "INSERT INTO [table1] (userID, userName) VALUES (:userID, :userName)"   -- 这里改为冒号:       
                cmd.Parameters.Add("userID",    10011); 
                cmd.Parameters.Add("userName",  "csShooter"); 
      

  5.   

    OracleConnection con = new OracleConnection(Session["oracle_con"].ToString());
                con.Open();
                string insert = "INSERT INTO [table1] (userID, userName) VALUES (:userID, :userName)";
                OracleCommand da = new OracleCommand(insert, con);
                   da.Parameters.Add("userID",    10011); 
                da.Parameters.Add("userName",  "csShooter");
                da.Dispose();
                con.Close();
                con.Dispose();
      

  6.   


    -- 将这行改为: 
    cmd.CommandText = "INSERT INTO table(userID, userName) VALUES (:userID, :userName)";   
      

  7.   

    不行啊: C#报异常::ORA-01008: 并非所有变量都已绑定
      

  8.   

    INSERT INTO table(userID, userName) VALUES (:userID, :userName)执行的时候要加using的
    INSERT INTO table(userID, userName) VALUES (:userID, :userName) using 变量1,变量2
      

  9.   

    其实就是占位符的问题,应该到C#板块去问sqlclient,OleDb和OracleClient在sql语句中的占位符是不同的,   
        
      ㈠SqlClient要使用的是@开头的字符串,   
      sql语句例如:insert   into   news(id,name)   values(@id,@name)         
      在添加是必须使用cmd.Parameters.Add("@name",SqlType.Varchar,50)...这中格式   
        
      ㈡OleDb使用的是?作为占位符,   
          insert   into   news(id,name)   values(?,?)   
          cmd.Parameters.Add("@name",SqlType.Varchar,50)...   
          cmd.Parameters.Add("name",oleDbType.Varchar,50)...   
      使用上面两种方式都可以   
        
      ㈢OracleClient使用的是:开头的字符串   
      insert   into   news(id,name)   values(:ID,:name)   
      cmd.Parameters.Add(":name",oralcetype.Varchar,50)...
      

  10.   

    --试一下:
    cmd.Parameters.Add("userID",    10011); 
    cmd.Parameters.Add("userName",  "csShooter"); 
    cmd.CommandText = "INSERT INTO " + table1 + " values(" + userID + "," + userName +");";
      

  11.   

    cmd.Parameters.Add("table1",    "table_test"); 
    cmd.Parameters.Add("userID",    10011); 
    cmd.Parameters.Add("userName",  "csShooter"); 
    cmd.CommandText = "INSERT INTO " + table1 + " values(" + userID + "," + userName +");";如一行,可以详细参考一下:http://blog.sina.com.cn/s/blog_4dba646b0100b8he.html
      

  12.   

     SqlCommand cmd = new SqlCommand(); 
        ... 
                cmd.CommandText = "INSERT INTO table1 (userID, userName) VALUES (?, ?)"          
                cmd.Parameters.Add("userID",    10011); 
                cmd.Parameters.Add("userName",  "csShooter"); 直接這樣就可以,參數按順序加入
      

  13.   

    问题找到了!!...不好意思.刚才上洗手间去了!! cmd.CommandText = "INSERT INTO table(userID, userName) VALUES (:userID, :userName)";   是对的。但只能使用OralceClient方式
    不能使用OleDbClient方式连接!!
    也算是给其它兄弟留点有用的东西!!