C#执行ACCESS中存储过程

12 篇文章 0 订阅
8 篇文章 0 订阅

ACCESS中存储过程实际上就是ACCESS中创建的Update、Insert、Delete语句。


C#中执行ACCESS中存储过程示例如下:

库名D:\db_test.accdb,表名:tb_test(Id []自动编号],RunCount long[默认为 0],test text(10))

Update 无参语句:名称RunAddOne

UPDATE tb_test SET tb_test.RunCount = [tb_test]![RunCount]+1
WHERE (([tb_test]![Id]=1));   程序每启动一次加一

INSERT 语句:名称tb_testInsert

PARAMETERS test Text ( 10 );         //ACCESS不支持写为@test

INSERT INTO tb_test(test)

SELECT [test] AS test;


private void Updatebutton_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = null;
            string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\db_test.accdb;Persist Security Info=True;Jet OLEDB:Database Password=123456";
            conn = new OleDbConnection(strConnection);
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "RunAddOne";
            conn.Open();
            try
            {
                int rowCount = cmd.ExecuteNonQuery();
                if (rowCount == 1)
                {

                    MessageBox.Show("更新成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("更新失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                conn.Close();
                MessageBox.Show(ex.Message);
            } 
	} 


private void Addbutton_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = null;
            string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\db_test.accdb;Persist Security Info=True;Jet OLEDB:Database Password=123456";
            conn = new OleDbConnection(strConnection);
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "tb_testInsert" + " " + this.textBox1.Text;//加空格很重要
            conn.Open();
            try
            {
                int rowCount = cmd.ExecuteNonQuery();
                if (rowCount == 1)
                {

                    MessageBox.Show("添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("添加失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                conn.Close();
                MessageBox.Show(ex.Message);
            } 
	} 

其实也比较简单啊!




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C# 调用 Oracle 存储过程可以使用 Oracle.DataAccess.Client 命名空间的 OracleCommand 类。下面是一个示例代码: ```csharp // 创建 Oracle 数据库连接 OracleConnection connection = new OracleConnection("Data Source=your_datasource;User ID=your_userid;Password=your_password"); // 打开数据库连接 connection.Open(); // 创建 OracleCommand 对象,设置存储过程名称和连接对象 OracleCommand command = new OracleCommand("your_stored_procedure_name", connection); command.CommandType = CommandType.StoredProcedure; // 添加输入参数 OracleParameter inputParameter = new OracleParameter("input_parameter_name", OracleDbType.Varchar2, ParameterDirection.Input); inputParameter.Value = "your_input_parameter_value"; command.Parameters.Add(inputParameter); // 添加输出参数 OracleParameter outputParameter = new OracleParameter("output_parameter_name", OracleDbType.Varchar2, ParameterDirection.Output); command.Parameters.Add(outputParameter); // 执行存储过程 command.ExecuteNonQuery(); // 获取输出参数值 string outputValue = outputParameter.Value.ToString(); // 关闭数据库连接 connection.Close(); ``` 其,your_datasource 是你的 Oracle 数据库连接字符串,your_userid 和 your_password 是你的数据库用户名和密码,your_stored_procedure_name 是你要调用的存储过程名称,input_parameter_name 是存储过程的输入参数名称,output_parameter_name 是存储过程的输出参数名称。执行存储过程后,可以通过 outputParameter.Value 属性获取输出参数的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值