在我的解决方案中我建了一个程序集,里面有2个文件:
DataAccessProvider.classusing System;
using System.Collections.Generic;
using System.Text;
using System.Data.Common;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
using System.Transactions;
namespace Taobao.SqlHelp
{
public class DataAccessProvider
{
private static string connString;
private static string providerName;
static DataAccessProvider()
{
ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings["DSN"];
connString = setting.ConnectionString;
providerName = setting.ProviderName;
System.Diagnostics.Debug.WriteLine(providerName);
}
public static DbConnection GetConneciton()
{
DbProviderFactory factroy = DbProviderFactories.GetFactory(providerName);
DbConnection conn = factroy.CreateConnection();
conn.ConnectionString = connString;
return conn;
} private static DbDataAdapter GetDataAdapter()
{
DbProviderFactory factroy = DbProviderFactories.GetFactory(providerName);
DbDataAdapter da = factroy.CreateDataAdapter();
return da;
} public static DbCommand GetCommand(string commandText, CommandType commandType)
{
DbConnection conn = GetConneciton();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = commandText;
cmd.CommandType = commandType;
return cmd;
} public static DbDataReader GetDataReader(string commandText, CommandType commandType)
{
DbCommand cmd = GetCommand(commandText, commandType);
cmd.Connection.Open();
DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
} public static bool ExecuteNonQuery(string commandText, CommandType commandType)
{
DbCommand cmd = GetCommand(commandText, commandType);
DbConnection conn = cmd.Connection;
DbTransaction trans = null;
bool result;
try
{
conn.Open();
trans = conn.BeginTransaction();
cmd.ExecuteNonQuery();
trans.Commit();
result = true;
}
catch (SqlException)
{
if (trans != null)
{
trans.Rollback();
}
result = false;
}
finally
{
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return result;
} public static object ExecScalar(string commandText, CommandType commandType)
{
DbCommand cmd = GetCommand(commandText, commandType);
DbConnection conn = cmd.Connection;
conn.Open();
object obj = cmd.ExecuteScalar();
conn.Close();
return obj;
} public static DataTable GetDataTable(string commandText, CommandType commandType)
{
return GetDataTable(commandText, commandType, 0, 0);
} public static DataTable GetDataTable(string commandText, CommandType commandType, int start, int count)
{
DbDataAdapter da = GetDataAdapter();
DbCommand cmd = GetCommand(commandText, commandType);
da.SelectCommand = cmd;
DataTable dt = new DataTable();
DbConnection conn = cmd.Connection;
conn.Open();
if (start == 0 && count == 0)
{
da.Fill(dt);
}
else
{
da.Fill(start, count, dt);
}
conn.Close();
return dt;
}
}
}App.config<configuration>
<connectionStrings>
<add name="DSN" connectionString="server=(local);DataBase=dataname;uid=user;pwd=" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
然后再其他的程序集中引用这个程序集,结果报错:
"***.DataAccessProvider”的类型初始值设定项引发异常后来通过断点发现,在ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings["DSN"];
connString = setting.ConnectionString;
根本没有获得到值,不知道问题出在哪里,请大家多帮忙,谢谢!!
DataAccessProvider.classusing System;
using System.Collections.Generic;
using System.Text;
using System.Data.Common;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Data.OracleClient;
using System.Transactions;
namespace Taobao.SqlHelp
{
public class DataAccessProvider
{
private static string connString;
private static string providerName;
static DataAccessProvider()
{
ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings["DSN"];
connString = setting.ConnectionString;
providerName = setting.ProviderName;
System.Diagnostics.Debug.WriteLine(providerName);
}
public static DbConnection GetConneciton()
{
DbProviderFactory factroy = DbProviderFactories.GetFactory(providerName);
DbConnection conn = factroy.CreateConnection();
conn.ConnectionString = connString;
return conn;
} private static DbDataAdapter GetDataAdapter()
{
DbProviderFactory factroy = DbProviderFactories.GetFactory(providerName);
DbDataAdapter da = factroy.CreateDataAdapter();
return da;
} public static DbCommand GetCommand(string commandText, CommandType commandType)
{
DbConnection conn = GetConneciton();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = commandText;
cmd.CommandType = commandType;
return cmd;
} public static DbDataReader GetDataReader(string commandText, CommandType commandType)
{
DbCommand cmd = GetCommand(commandText, commandType);
cmd.Connection.Open();
DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
} public static bool ExecuteNonQuery(string commandText, CommandType commandType)
{
DbCommand cmd = GetCommand(commandText, commandType);
DbConnection conn = cmd.Connection;
DbTransaction trans = null;
bool result;
try
{
conn.Open();
trans = conn.BeginTransaction();
cmd.ExecuteNonQuery();
trans.Commit();
result = true;
}
catch (SqlException)
{
if (trans != null)
{
trans.Rollback();
}
result = false;
}
finally
{
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return result;
} public static object ExecScalar(string commandText, CommandType commandType)
{
DbCommand cmd = GetCommand(commandText, commandType);
DbConnection conn = cmd.Connection;
conn.Open();
object obj = cmd.ExecuteScalar();
conn.Close();
return obj;
} public static DataTable GetDataTable(string commandText, CommandType commandType)
{
return GetDataTable(commandText, commandType, 0, 0);
} public static DataTable GetDataTable(string commandText, CommandType commandType, int start, int count)
{
DbDataAdapter da = GetDataAdapter();
DbCommand cmd = GetCommand(commandText, commandType);
da.SelectCommand = cmd;
DataTable dt = new DataTable();
DbConnection conn = cmd.Connection;
conn.Open();
if (start == 0 && count == 0)
{
da.Fill(dt);
}
else
{
da.Fill(start, count, dt);
}
conn.Close();
return dt;
}
}
}App.config<configuration>
<connectionStrings>
<add name="DSN" connectionString="server=(local);DataBase=dataname;uid=user;pwd=" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
然后再其他的程序集中引用这个程序集,结果报错:
"***.DataAccessProvider”的类型初始值设定项引发异常后来通过断点发现,在ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings["DSN"];
connString = setting.ConnectionString;
根本没有获得到值,不知道问题出在哪里,请大家多帮忙,谢谢!!
解决方案 »
- 懂正则表达式的大哥们帮我一下 谢谢
- asp.net中委托事件的标志位问题。
- asp.net用c#还是用vb.net?
- 使用ajax在发布遇到的问题
- 在线急等,为何我的页面别人不能访问
- tmmd,asp.net把我搞死了,大家快过来看看吧!哪位大侠救我一命!!!!!!
- ASP.NET+C#+SQLSERVER的WEBFORM每天必杀技!!!!!!!!!!!!!!!!
- 水晶报表如何实现页面合计?
- 请问:在DataGrid1_DeleteCommand 中如何嵌入对删除的确认框的操作?
- 双击datagrid一行,新弹出一个页面显示这一行的具体的内容,处于编译状态,编译后提交,自动刷新父页面,怎么实现?
- 请教一个正则表达式的问题?
- 请问 提示这个错误,怎么解决?
这样试试