none
c#可以写access存储过程吗?有什么函数可以用 RRS feed

  • 问题

  • mssql 可以用 SqlParameter实现存储过程吗,access怎么实现存储过程?,我试过Parameter了,也在网上搜过了,都不行。谢谢,最好有源码做参考!
    2009年8月27日 3:36

答案

  • 你好,比如这里

    OleDbCommand command = new OleDbCommand(queryString, connection);
        command.CommandText =
            "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
        command.Parameters.Add(parameters);

    command.Parameters.Add("@Country", OleDbType.Char, 10).Value = "China";
    command.Parameters.Add("@City", OleDbType.Char, 10).Value = "Chengdu";
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 Love波波 2009年8月28日 3:19
    2009年8月27日 4:17
    版主

全部回复

  • 你好,access不支持存储过程
    不过你可以考虑在access中通过DBA连编写一些函数采用DAO里边的一些对象来模拟存储过程

    另外Access可以借助SQl Server实现存储过程的功能,但是必须安装SqlServer 不过既然安装了SQL SErver 那么再用Access也没多大必要了


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月27日 3:46
    版主
  • Access 不支持存储过程,但支持参数,参数与SQL Server 不同, Access 参数用 ? 表示,SQL Server 用 @表示。使用参数与是否使用存储过程无关
    知识改变命运,奋斗成就人生!
    2009年8月27日 3:53
    版主
  • 参数可以用
    Parameter引用吗?
    2009年8月27日 4:05
  • 参数可以用
    Parameter引用吗?

    Parameter就是参数
    2009年8月27日 4:10
  • 你好Parameter是可以用的用?代替n@Paraname之类的
    public void CreateMyOleDbCommand(OleDbConnection connection,
        string queryString, OleDbParameter[] parameters) 
    {
        OleDbCommand command = new OleDbCommand(queryString, connection);
        command.CommandText = 
            "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
        command.Parameters.Add(parameters);
    
        for (int j=0; j<parameters.Length; j++)
        {
            command.Parameters.Add(parameters[j]) ;
        }
    
        string message = "";
        for (int i = 0; i < command.Parameters.Count; i++) 
        {
            message += command.Parameters[i].ToString() + "\n";
        }
        Console.WriteLine(message);
    }
    

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月27日 4:11
    版主
  • 具体怎么弄
    提供点源码
    我怎么用Parameter不行啊
    2009年8月27日 4:14
  • 你好,比如这里

    OleDbCommand command = new OleDbCommand(queryString, connection);
        command.CommandText =
            "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
        command.Parameters.Add(parameters);

    command.Parameters.Add("@Country", OleDbType.Char, 10).Value = "China";
    command.Parameters.Add("@City", OleDbType.Char, 10).Value = "Chengdu";
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    • 已标记为答案 Love波波 2009年8月28日 3:19
    2009年8月27日 4:17
    版主
  • 明白了
    原来我用@
    难怪不行
    ?是不是要加上Country
    2009年8月27日 4:36
  • 你好,不用加
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月27日 4:37
    版主
  • 谢谢了!!!我试一试
    2009年8月27日 6:03
  • 明白了
    原来我用@
    难怪不行
    ?是不是要加上Country
    你好,Access不用加Country,但是他是有顺序的,按顺序来对号入座的。
    jon.valett@gmail.com
    2009年8月27日 6:32
    版主