首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

TypeInitializationException,类的初始值设定发生错误

2012-03-22 
TypeInitializationException,类的初始值设定发生异常我定义了一个类using Systemusing System.Datausin

TypeInitializationException,类的初始值设定发生异常
我定义了一个类
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Data.SqlClient;
/// <summary>
/// DB 的摘要说明
/// </summary>
namespace DAL
{
  public class OleDbDB
  {
  #region Fields
  private static readonly string connectionstring = GetConnectionString();
  private static SqlConnection conn = new SqlConnection(connectionstring);
  #endregion

  #region Properties

  #endregion

  #region Constructed Function
  public OleDbDB()
  {
  }
  #endregion

  #region Methods
  private static string GetConnectionString()
  {
  return ConfigurationManager.AppSettings["ConnetionString"].ToString();
  }
  private static bool OpenConnection()
  {
  if (conn.State != ConnectionState.Open)
  {
  try
  {
  conn.Open();
  }
  catch
  {
  conn.Close();
  return false;
  }
  }
  return true;
  }

  public static SqlDataReader ReturnOleDbDataReader(string sql)
  {
  if (OpenConnection())
  {
  //conn已经打开
  SqlCommand cmd = new SqlCommand(sql, conn);
  SqlDataReader dr;
  try
  {
  dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  }
  catch
  {
  conn.Close();
  return null;
  }
  //DataReader的数据读完之前不能关闭conn
  return dr;
  }
  else
  {
  conn.Close();
  return null;
  }
  }
  public static DataSet ReturnDataSet(string sql)
  {
  if (OpenConnection())
  {
  SqlDataAdapter da = new SqlDataAdapter(sql, conn);
  DataSet ds = new DataSet();
  try
  {
  da.Fill(ds);
  }
  catch
  {
  conn.Close();
  return null;
  }
  conn.Close();
  return ds;
  }
  else
  {
  conn.Close();
  return null;
  }
  }
  public static DataTable ReturnDataTable(string sql, int TableIndex)
  {
  DataSet ds = ReturnDataSet(sql);
  if (ds != null)
  {
  return ds.Tables[TableIndex];
  }
  else
  {
  return null;


  }
  }
  public static DataTable ReturnDataTable(string sql)
  {
  return ReturnDataTable(sql, 0);
  }
  public static DataRow ReturnDataRow(string sql, int TableIndex, int RowIndex)
  {
  DataTable dt = ReturnDataTable(sql, TableIndex);
  if (dt != null)
  {
  return dt.Rows[RowIndex];
  }
  else
  {
  return null;
  }
  }
  public static DataRow ReturnDataRow(string sql, int TableIndex)
  {
  return ReturnDataRow(sql, TableIndex, 0);
  }
  public static DataRow ReturnDataRow(string sql)
  {
  return ReturnDataRow(sql, 0, 0);
  }
  /// <summary>
  /// 唯一一个返回值为false 代表出错的方法
  /// </summary>
  /// <param name="sql"></param>
  /// <returns></returns>
  public static bool ExecuteNonQuery(string sql)
  {
  if (OpenConnection())
  {
  SqlCommand cmd = new SqlCommand(sql, conn);
  try
  {
  cmd.ExecuteNonQuery();
  }
  catch
  {
  conn.Close();
  return false;
  }
  return true;
  }
  else
  {
  conn.Close();
  return false;
  }
  }

  // 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行
  public static object ExecuteScalar(string sql)
  {
  if (OpenConnection())
  {
  SqlCommand cmd = new SqlCommand(sql, conn);
  object ob;
  try
  {
  ob = cmd.ExecuteScalar();
  }
  catch
  {
  conn.Close();
  return null;
  }
  return ob;
  }
  else
  {
  conn.Close();
  return null;
  }
  }
  public static bool BindGridView(GridView gv, string sql)
  {
  return BindGridView(gv, sql, 0);
  }
  public static bool BindGridView(GridView gv, string sql, int tableIndex)
  {
  DataTable dt = ReturnDataTable(sql, tableIndex);
  if (dt != null)
  {
  gv.DataSource = dt.DefaultView;
  gv.DataBind();
  return true;
  }
  else
  {
  return false;
  }
  }
  #endregion

  }
}

然后如下调用
  string sql = "select [AdminId] from [tb_Admin] where [AdminName]='" + this.adminName + "'";
  return Convert.ToInt32(OleDbDB.ExecuteScalar(sql));
提示TypeInitializationException,类的初始值设定发生异常,是哪里不对吗?

------解决方案--------------------


string sql = "select [AdminId] from [tb_Admin] where [AdminName]='" + this.adminName + "'";
Debug到这个到查询分析器看看是不是有问题·
[解决办法]

探讨
已解决了,是webconfig的配置有问题

热点排行