首页 新闻 会员 周边

oledbParameters问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-09-19 15:03

string zhi1 = this.TextBox1.Text.Trim();
        int zhi2 = Convert.ToInt32(this.TextBox2.Text.Trim());
        DateTime zhi3 = Convert.ToDateTime(this.TextBox3.Text.Trim());
        int zhi4 = Convert.ToInt32(this.TextBox4.Text.Trim());
        bool zhi5 = Convert.ToBoolean(this.TextBox5.Text.Trim());
        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "insert [admin] values(?,?,?,?,?)";
        cmd.Parameters.AddWithValue("na",zhi1);
        cmd.Parameters.AddWithValue("ag", zhi2);
        cmd.Parameters.AddWithValue("ti", zhi3);
        cmd.Parameters.AddWithValue("mo", zhi3);
        cmd.Parameters.AddWithValue("pa", zhi4);
        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
        }
        catch (Exception err)
        {
            Response.Write(err.Message);
        }
        finally
        {
            con.Close();
        }

问题补充: 上面的源码贴错了,下面才是要贴的源码: 当调用Button1_Click方法时出错,可是当我调用Button2_Click却没事 protected void ins(OleDbParameter[] par,string na,int ag,DateTime sj,decimal mo,bool pa) { com.Connection = con; com.CommandType = System.Data.CommandType.Text; com.CommandText = "insert into [first] values(?,?,?,?,?) "; com.Parameters.Add(par[0]); par[0].Value=na; com.Parameters.Add(par[1]); par[0].Value = ag; com.Parameters.Add(par[2]); par[0].Value = sj; com.Parameters.Add(par[3]); par[0].Value = mo; com.Parameters.Add(par[4]); par[0].Value = pa; try { con.Open(); com.ExecuteNonQuery(); con.Close(); sel("select * from [first]"); } catch (Exception err) { Response.Write(err); } finally { con.Close(); } } protected void Button1_Click(object sender, EventArgs e) { OleDbParameter[] para=new OleDbParameter[5]; para[0] = new OleDbParameter("na", OleDbType.VarChar, 50); para[1] = new OleDbParameter("@ag", OleDbType.Integer); para[2] = new OleDbParameter("sj", OleDbType.DBDate); para[3] = new OleDbParameter("mo", OleDbType.Currency); para[4] = new OleDbParameter("pa", OleDbType.Boolean); ins(para,this.TextBox1.Text.Trim(),Convert.ToInt32(this.TextBox2.Text.Trim()),Convert.ToDateTime(this.TextBox3.Text),Convert.ToDecimal(this.TextBox3.Text.Trim()),Convert.ToBoolean(this.TextBox3.Text.Trim())); } protected void Button2_Click(object sender, EventArgs e) { com.Connection = con; com.CommandType = System.Data.CommandType.Text; com.CommandText = "insert into [first]([shiJian]) values(?) "; com.Parameters.Add(new OleDbParameter(&qu
时间都去哪了的主页 时间都去哪了 | 初学一级 | 园豆:51
提问于:2010-09-10 18:23
< >
分享
所有回答(3)
0

 "insert [admin] values(?,?,?,?,?)";
不是吧,用admin做表名?这个应该是不允许的,关键字是不允许做表名的。

路过秋天 | 园豆:4787 (老鸟四级) | 2010-09-10 19:37
关键字加[]是可以做表名的
支持(0) 反对(0) yixin841210 | 园豆:1138 (小虾三级) | 2010-09-10 21:04
0

你这样试试

cmd.CommandText = "insert [admin] values(@na,@ag,@ti,@mo,@pa)";
        cmd.Parameters.AddWithValue("@na",zhi1);
        cmd.Parameters.AddWithValue("@ag", zhi2);
        cmd.Parameters.AddWithValue("@ti", zhi3);
        cmd.Parameters.AddWithValue("@mo", zhi3);
        cmd.Parameters.AddWithValue("@pa", zhi4);

你先确认你sql语句正确,在查询分析器中试试。[admin] 表中 确定和和5个字段对应,就5个字段吗

慧☆星 | 园豆:5640 (大侠五级) | 2010-09-10 20:36
0

代码写的没有问题,具体报的什么错,贴出来看看吧?

我猜可能是数据库字段数目不匹配导致的错误,表里就那几个字段吗?

insert into [admin](字段1,字段2,字段3,字段4,字段5) values(?,?,?,?,?)

yixin841210 | 园豆:1138 (小虾三级) | 2010-09-10 21:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册