C#企业应用程序数据块错误

时间:2009-09-30 09:36:09

标签: c# enterprise-library

有人可以发布企业应用程序数据块的“工作”示例来调用SP。

我找到的所有示例代码都以

开头
 // Create DataBase Instance
   Database db = DatabaseFactory.CreateDatabase();

但我的代码抛出了一个未设置为实例的对象引用....

1 个答案:

答案 0 :(得分:2)

您是否正确设置了应用程序配置?

以下是通过Enterprise Library Data Access Block调用存储过程的快速示例:

using System;
using System.Data;
using Microsoft.Practices.EnterpriseLibrary.Data;
namespace MyTest
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var database = DatabaseFactory.CreateDatabase();
            var command = database.GetStoredProcCommand("SomeSP");
            using (IDataReader reader = database.ExecuteReader(command))
            {
                while (reader.Read())
                {
                    Console.WriteLine("X: {0} Y: {1} Z: {2}", 
                                    reader["SomeField"], 
                                    reader["AnothterField"], 
                                    reader["Enabled"]);
                }
            }
            Console.ReadLine();
        }
    }
}

以及相应的app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
      <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
  <connectionStrings>
    <add
    name="DB"
    providerName="System.Data.SqlClient"
    connectionString="server=(local)\SQLEXPRESS;database=YourDB;Integrated Security=true" />
  </connectionStrings>
  <dataConfiguration defaultDatabase="DB"/>
</configuration>

当我没有将defaultDatabase设置为相应的连接字符串时,我遇到了这个问题。