存储过程执行中的问题 [英] problem in storeprocedure executing

查看:77
本文介绍了存储过程执行中的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好
我正在尝试通过ODBC驱动程序中的C#Windows应用程序存储过程输入数据,但是如果我尝试单个参数,则它执行正确,但是在多个参数中,它显示输入参数不正确
以下是我给的程序&
后面的代码

Hi ALL
I am trying to enter data through C# windows application Store procedure in ODBC driver but If I try single parameter it is executing properly but in multiple parameter it is showing input parameter is not correct
below I m giving procedure & code behind

alter PROCEDURE TestSPInsert
@FirstName char(10),
@gender char(10)
As
INSERT INTO TestTable (FirstName, gender)Values(@FirstName,@gender )

GO





private void button1_Click(object sender, EventArgs e)
        {
            OdbcParameter prm;
            //OdbcDataReader dr;
            string nam  =  textBox1.Text;
            string gen  =   textBox2.Text;
                        
            try
            {
                //string str = "insert into TestTable(FirstName,gender) values('" + textBox1.Text + "','" + textBox2.Text + "')";
                //OdbcCommand cmd = new OdbcCommand(str, conn);
                //conn.Open();
                //cmd.ExecuteNonQuery();
                //conn.Close();
                //MessageBox.Show("Data successfully Inserted");

                OdbcCommand cmd = new OdbcCommand("{? = call TestSPInsert (?, ?)}", conn);
                //cmd.CommandType = CommandType.StoredProcedure;
                prm = cmd.Parameters.Add("@FirstName", OdbcType.Char, 10);
                prm.Value = nam;
                prm = cmd.Parameters.Add("@gender", OdbcType.Char, 10);
                prm.Value = gen;                                
                conn.Open();
                cmd.ExecuteNonQuery();  
                            
                //while (dr.Read())
                //    MessageBox.Show(dr.GetString(0));
                //Clean up.
                //dr.Close();
                conn.Close();
                MessageBox.Show("Data successfully Inserted");
            }
            catch (OdbcException ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        }

推荐答案

尝试更改为此.
try by changing to this..

OdbcCommand cmd = new OdbcCommand("{call TestSPInsert(?, ?)}", conn);


这篇关于存储过程执行中的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆