test表
字段  id,number
      name,char创建以下两个类库:
namespace Common  //连接字符串类
{
    public class Class1
    {
        public const string ConnectString = "Data Source=zkrorcdb;User ID=CasinoAdmin;password=HjsmCasinoAdmin;"; 
        public const string sql_getUser = "select * from test";
        public const string table = "test";
    }
}
namespace DataControl  //数据操作类
{
    public class Class1
    {
        OracleConnection con = new OracleConnection(Common.Class1.ConnectString);
        OracleDataAdapter da;
        DataSet ds = new DataSet();
        public DataSet getusers()       //读取数据
        {
            OracleCommand cmd = new OracleCommand(Common.Class1.sql_getUser, con);
            da = new OracleDataAdapter(cmd);
            da.Fill(ds, Common.Class1.table);
            return ds;
        }        public void insertUsers(DataSet ds) //插入数据 
        {
            OracleCommand cmd = new OracleCommand("insert into test(id,name) values(:id,:name))", con);
            cmd.Parameters.Add(":id", OracleType.Number, 10, "id");
            cmd.Parameters.Add(":name", OracleType.Char, 10, "name");            da = new OracleDataAdapter();
            da.InsertCommand = cmd;
            con.Open();
            da.Update(ds,Common .Class1 .table );
            con.Close();
        }
            
            
    }------------------------------------------------------------------------------------
在 default.aspx的button按钮执行增加代码如下:    protected void Button1_Click(object sender, EventArgs e)
    {
        DataControl.Class1 dac = new DataControl.Class1();
        DataSet ds = dac.getusers();
        DataRow dr = ds.Tables[0].NewRow();
        dr["id"] = Convert.ToInt32(TextBox1.Text); ;
        dr["name"] = this.TextBox2.Text;        ds.Tables[0].Rows.Add(dr);
        dac.insertUsers(ds);
        Bind();
     }运行结果提示:行38“ORA-00933: SQL 命令未正确结束”行 35:             da.InsertCommand = cmd;
行 36:             con.Open();
行 37:             da.Update(ds,Common .Class1 .table );
行 38:             con.Close();
行 39:         
 
以上方法我在sqlserver调试通过.用oracle数据库就不知道哪出问题了?

解决方案 »

  1.   


    OracleCommand cmd = new OracleCommand("insert into test(id,name) values(:id,:name))", con); 
                cmd.Parameters.Add(":id", OracleType.Number, 10, "id"); 
                cmd.Parameters.Add(":name", OracleType.Char, 10, "name"); 看看这块给参数赋值的时候有没有错误,
    错误的意思是这条sql语句有问题
      

  2.   

    OracleCommand cmd = new OracleCommand("insert into test(id,name) values(:id,:name))", con); 
    是不是应该改成
    OracleCommand cmd = new OracleCommand("insert into test(id,name) values(:id,':name'))", con); 
    你的name 是char类型的,应该是需要加单引号的吧