现在的位置: 首页 > 综合 > 正文

解决了c#捕获sql错误号的问题和将sql连接用application放在global中作全局变量问题

2013年02月23日 ⁄ 综合 ⁄ 共 1100字 ⁄ 字号 评论关闭
 解决了c#捕获sql错误号的问题和将sql连接用application放在global中作全局变

量问题

一、获取sql错误号

try
   {
    row =

CmdObj.ExecuteNonQuery(); //执行sql语句
   }
   catch(SqlException e)
   {
    switch(e.Errors[0].Number)
    {
     case

547:
      page.Response.Write (

"<p><b>数据库中还没有建立这

</b><br>");
      return -1;
     case 2627:
      page.Response.Write (

"<p><b>中已经存在这一

</b><br>");
      return 0;
     default:
      page.Response.Write (

"<p><b>操作数据库出现其他错误!

</b><br>");
      return -2;
    }

 发现一个捕获异常的技巧,有时不知道会发生具体哪种类型异常,可以将

catch的异常类型暂时设为Exception,
再利用Exception的GetType()函数输

出异常类型,这个类型就是具体的异常类型了.

二、 application存储web全局变量

//建立全局的连接对象

//在gloabal文件中

protected void Application_Start(Object sender, EventArgs e)
  {
   EntryFilePath = Server.MapPath

("Entries");

   //建立全局的连接对象
   Application["Con"] = new SqlConnection

("Data Source=Localhost;Initial Catalog=databasename;User

ID=xxxxx;Pwd=");
  }

使用全局连接变量

String SqlCmd = "SELECT * FROM BookChapter WHERE (bookID =

@bookID AND ChapterID = @chapterID)";

   //page.Application["Con"]是global里建立

的全局的连接对象,必须强制类型转换为SqlConnection类型
   SqlCommand CmdObj = new SqlCommand(SqlCmd,

(SqlConnection)(Application["Con"]));
  

((SqlConnection)(Application["Con"])).Open();//注意括号的使用

 

抱歉!评论已关闭.