C#相对路径写法之连接Access数据库

好多人的C#相对路径写法web.config中的写法如下:

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站设计、乌拉特前网络推广、重庆小程序开发、乌拉特前网络营销、乌拉特前企业策划、乌拉特前品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供乌拉特前建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

 
 
 
  1.    
  2.  key="OLEDBCONNECTIONSTRING" value="Provider=Microsoft.Jet.OLEDB.4.0;Data   
  3. Source=E:"web"App_Data"Data.mdb)">   
  4.   

C#相对路径写法这样写:

 
 
 
  1. MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]); // 注释一下:VS2005和VS2003中的ConfigurationSettings写法不一样,具体区别自己查吧  

这样程序运行时经常提示诸如以下的错误:
'C:"WINDOWS"system32"~"App_Data"Data.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 Data Source=~"App_Data"Data.mdb

就算用绝对路径正确,那么移植程序时还要去修改web.config,所以比较麻烦。

也有在web.config中使用象ASP那样的Server.MapPath取数据库路径的,但web.config不认识Server.MapPath,此方法也行不通。

后来通过摸索、参考其它程序,总结出如下方法,可以方便的C#相对路径写法而不必再去修改ACCESS数据库路径。
我在web.config中的写法如下:

 
 
 
  1.    
  2.  key="SQLConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>   
  3.  key="dbPath" value="~/App_Data/mydata.mdb"/>   
  4.   

程序中的数据访问类中我把"SQLConnString"和"dbPath"取出来连接成一个字符串"CONN_STRING_NON_DTC"

 
 
 
  1. public static readonly string CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";  

End of《ASP.NET连接ACCESS数据库web.config内路径***写法
帖子二web.config 配置access的相对路径

本人使用的是VS 2005,经过调试成功,具体如何实现,代码如下(VB.Net示例,C#方法一样,在这里就不用说了)

首先在web.config文件节点中加入如下代码:

 
 
 
  1.    
  2.  key="myds" value="Provider=Microsoft.Jet.OLEDB.4.0;Data source="/>   
  3.    
  4.  key="myconn" value="App_Data"VinikeData.mdb"/>   
  5.  
  6.  
  7. 然后,写个类文件,调用上面的定义,代码如下:   
  8.  
  9.  
  10. '定义一个连接字符串,难点就在这里,网上很多用到了Server.MapPath,但是还是不行,注意这里用到了Request.MapPath(相对asp来说,这是asp所没用的)   
  11. Public connstr As String = ConfigurationSettings.AppSettings("myds") + HttpContext.Current.Request.MapPath("~") + (ConfigurationSettings.AppSettings("myconn").Trim())   
  12.  
  13. using System;   
  14. using System.Data;   
  15. using System.Configuration;   
  16. using System.Web;   
  17. using System.Web.Security;   
  18. using System.Web.UI;   
  19. using System.Web.UI.WebControls;   
  20. using System.Web.UI.WebControls.WebParts;   
  21. using System.Web.UI.HtmlControls;   
  22. using System.Data.OleDb;   
  23. ///    
  24. /// Connection 的摘要说明   
  25. ///    
  26. public class Connection   
  27. {   
  28. public Connection()   
  29. {   
  30.     //   
  31.     // TODO: 在此处添加构造函数逻辑   
  32.     //   
  33. }   
  34.      public static OleDbConnection connAccess()   
  35.      {   
  36.          OleDbConnection conn = new OleDbConnection(GetConnString());   
  37.          return conn;   
  38.      }   
  39.      private static string GetConnString()   
  40.      {   
  41.          return System.Configuration.ConfigurationSettings.AppSettings["ConnStr"] + System.Web.HttpContext.Current.Server.MapPath("~")+System.Configuration.ConfigurationSettings.AppSettings["DbPath"];   
  42.      }   
  43.  
  44. }   
  45.  
  46.  
  47. using System;   
  48. using System.Data;   
  49. using System.Configuration;   
  50. using System.Collections;   
  51. using System.Web;   
  52. using System.Web.Security;   
  53. using System.Web.UI;   
  54. using System.Web.UI.WebControls;   
  55. using System.Web.UI.WebControls.WebParts;   
  56. using System.Web.UI.HtmlControls;   
  57. using System.Data.OleDb;   
  58. public partial class test_sss_Defauldddt : System.Web.UI.Page   
  59. {   
  60.      protected void Page_Load(object sender, EventArgs e)   
  61.      {   
  62.      }   
  63.      protected void Button1_Click(object sender, EventArgs e)   
  64.      {   
  65.          System.Data.OleDb.OleDbConnection conn1 = Connection.connAccess();   
  66.          conn1.Open();   
  67.          if (conn1.State == ConnectionState.Open)   
  68.          {   
  69.              Label1.Text = "连接成功!";   
  70.          }   
  71.          else   
  72.          {   
  73.              Label1.Text = "连接不成功!";   
  74.          }   
  75.      }   
  76. }  

帖子三c#2.0中web.config中调用Access数据库语句

 
 
 
  1.  xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">   
  2.    
  3.    
  4.       cconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:"c#"book"App_Data"book.mdb"   
  5.       providerName="System.Data.OleDb" />   
  6.    
  7.  
  8. 调用数据库类:   
  9. using System;   
  10. using System.Data;   
  11. using System.Configuration;   
  12. using System.Web;   
  13. using System.Web.Security;   
  14. using System.Web.UI;   
  15. using System.Web.UI.WebControls;   
  16. using System.Web.UI.WebControls.WebParts;   
  17. using System.Web.UI.HtmlControls;   
  18. //因为要使用Access数据库,所以这里得引入命名空间   
  19. using System.Data.OleDb;   
  20. ///    
  21. /// 这里主要是留言本会用到的数据库连接类,因为数据操作并不多,所以把常规的操作类也一并放这里了   
  22. ///    
  23. public class odb   
  24. {   
  25.       public string name;   
  26.        public string email;   
  27.        public string qq;   
  28.        public string msn;   
  29.        public string url;   
  30.        public string title;   
  31.        public string concent;   
  32.        public string face;   
  33.        public string ip;   
  34.        public string pwd;   
  35.        public string uid;   
  36.        public string pwda;   
  37.        public DateTime dtt;   
  38.        
  39.        public odb()   
  40. {   
  41.      //   
  42.      // TODO: 在此处添加构造函数逻辑   
  43.      //   
  44. }   
  45.        public static OleDbConnection con()   
  46.        {//数据库连接类   
  47.            OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["book"].ConnectionString);   
  48.            return con;   
  49.        }   
  50.        public static bool insert(string que)   
  51.        { //根据传进来的SQL语句执行插入/删除/更新等操作   
  52.            OleDbConnection con = odb.con();   
  53.            con.Open();   
  54.            OleDbCommand cmd = new OleDbCommand(que,con);   
  55.            int count = Convert.ToInt32(cmd.ExecuteNonQuery());   
  56.            if (count > 0)   
  57.                return true;   
  58.            else   
  59.                return false;   
  60.        }   
  61.        public static DataTable ds(string que)   
  62.        {//返回一个装载了SQL制定留言的数据表,   
  63.            OleDbConnection con = odb.con();   
  64.            OleDbDataAdapter oda = new OleDbDataAdapter();   
  65.            oda.SelectCommand=new OleDbCommand(que,con);   
  66.            DataSet ds = new DataSet();   
  67.            oda.Fill(ds,"thc");   
  68.            return ds.Tables["thc"];   
  69.        }   
  70.        public static bool img(string que)   
  71.        {//根据传来的条件查询该项是否有内容,有就返回true   
  72.            OleDbConnection con = odb.con();   
  73.            con.Open();   
  74.            OleDbCommand cmd = new OleDbCommand(que,con);   
  75.            if (cmd.ExecuteScalar().ToString() != "")   
  76.                return true;   
  77.            else   
  78.                return false;   
  79.            con.Close();   
  80.        }   
  81.        public static string scr(string que)   
  82.        {//同样是根据传来的SQL语句返回一个字段的值,一般应该把SQL语句做在类中,这里没有放   
  83.            OleDbConnection con = odb.con();   
  84.            con.Open();   
  85.            OleDbCommand cmd = new OleDbCommand(que,con);   
  86.            return cmd.ExecuteScalar().ToString();   
  87.        }   
  88.        public static int num(string mm)   
  89.        {//根据要求返回一个一个显示条目数   
  90.           return     Convert.ToInt32(odb.scr("select ["+mm+"] from [config]"));   
  91.        }   
  92. }  

帖子四asp.net 做登录界面如何连接access数据库进行验证

 
 
 
  1. using System;   
  2. using System.Data;   
  3. using System.Configuration;   
  4. using System.Collections;   
  5. using System.Web;   
  6. using System.Web.Security;   
  7. using System.Web.UI;   
  8. using System.Web.UI.WebControls;   
  9. using System.Web.UI.WebControls.WebParts;   
  10. using System.Web.UI.HtmlControls;   
  11. using System.Data.OleDb;   
  12. public partial class login : System.Web.UI.Page   
  13. {   
  14. protected void Page_Load(object sender, EventArgs e)   
  15. {   
  16. //以下产生随机的验证码,并在label1显示   
  17. Random ro = new Random();   
  18. if (!IsPostBack)   
  19. {   
  20. this.Label1.Text = ro.Next(1000, 9999).ToString();   
  21. }   
  22. }   
  23. protected void Button1_Click(object sender, EventArgs e)   
  24. {   
  25.  
  26. if (this.name.Text != "")//判断用户名是否未空   
  27. {   
  28. if (this.pwd.Text != "")//判断密码是否未空   
  29. {   
  30. if (this.yanzhen1.Text != "")//判断验证码是否未空   
  31. {   
  32. if (this.yanzhen1.Text == this.Label1.Text)//判断验证码是否相等   
  33. {   
  34. string sql;   
  35. sql = "select count(*) from userinfo where username='" + this.name.Text + "' and pwd='" + this.pwd.Text + "'";//建立sql查询语句   
  36. try   
  37. {   
  38. OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("./app_data /db.mdb"));//建立数据库连接   
  39. conn.Open();   
  40. OleDbCommand cmd = new OleDbCommand(sql, conn);   
  41. int state =Convert.ToInt32( cmd.ExecuteScalar());//执行sql语句,并返回获得值   
  42. if (state == 0 || state > 1)//如果数据中没有记录或有多条记录则抱错   
  43. {   
  44. this.Label2.Text = "用户不存在,请检测用户名和密码是否正确!";   
  45. }   
  46. else   
  47. {   
  48. this.Label2.Text = "登入成功!" ;   
  49.  
  50.  
  51. }   
  52. conn.Close();   
  53.  
  54. }   
  55. catch (Exception a)   
  56. {   
  57. Response.Writea.Message);   
  58. }   
  59. }   
  60. else   
  61. {   
  62. this.Label2.Text = "验证码不正确,请重新输入!";   
  63. }   
  64. }   
  65. else   
  66. {   
  67. this.Label2.Text = "验证码没有填写!";   
  68.  
  69. }   
  70. }   
  71. else   
  72. {   
  73. this.Label2.Text = "密码没有填写!";   
  74.  
  75. }   
  76. }   
  77. else   
  78. {   
  79. this.Label2.Text = "用户名没有填写!";   
  80. }   
  81. }   
  82. }   

【编辑推荐】

  1. C#记忆功能的地址栏控件
  2. 描述C#调用外部进程
  3. C#语言操纵数据库事务
  4. 概述C#语言异常处理
  5. 简单介绍C#数组和函数

文章标题:C#相对路径写法之连接Access数据库
路径分享:http://www.stwzsj.com/qtweb/news27/14627.html

成都网站建设公司_创新互联,为您提供小程序开发云服务器品牌网站制作网站收录建站公司网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联