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.hantingmc.com/qtweb/news19/128769.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

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