符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
本篇内容介绍了“C#用相对路径写法连接Access数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联建站长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为威县企业提供专业的网站设计制作、成都网站建设,威县网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
好多人的C#相对路径写法web.config中的写法如下:
C#相对路径写法这样写:
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中的写法如下:
程序中的数据访问类中我把"SQLConnString"和"dbPath"取出来连接成一个字符串"CONN_STRING_NON_DTC"
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文件
然后,写个类文件,调用上面的定义,代码如下: '定义一个连接字符串,难点就在这里,网上很多用到了Server.MapPath,但是还是不行,注意这里用到了Request.MapPath(相对asp来说,这是asp所没用的) Public connstr As String = ConfigurationSettings.AppSettings("myds") + HttpContext.Current.Request.MapPath("~") + (ConfigurationSettings.AppSettings("myconn").Trim()) 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; /// /// Connection 的摘要说明 /// public class Connection { public Connection() { // // TODO: 在此处添加构造函数逻辑 // } public static OleDbConnection connAccess() { OleDbConnection conn = new OleDbConnection(GetConnString()); return conn; } private static string GetConnString() { return System.Configuration.ConfigurationSettings.AppSettings["ConnStr"] + System.Web.HttpContext.Current.Server.MapPath("~")+System.Configuration.ConfigurationSettings.AppSettings["DbPath"]; } } using System; using System.Data; using System.Configuration; using System.Collections; 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; public partial class test_sss_Defauldddt : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { System.Data.OleDb.OleDbConnection conn1 = Connection.connAccess(); conn1.Open(); if (conn1.State == ConnectionState.Open) { Label1.Text = "连接成功!"; } else { Label1.Text = "连接不成功!"; } } }
帖子三c#2.0中web.config中调用Access数据库语句
调用数据库类: 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; //因为要使用Access数据库,所以这里得引入命名空间 using System.Data.OleDb; /// /// 这里主要是留言本会用到的数据库连接类,因为数据操作并不多,所以把常规的操作类也一并放这里了 /// public class odb { public string name; public string email; public string qq; public string msn; public string url; public string title; public string concent; public string face; public string ip; public string pwd; public string uid; public string pwda; public DateTime dtt; public odb() { // // TODO: 在此处添加构造函数逻辑 // } public static OleDbConnection con() {//数据库连接类 OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["book"].ConnectionString); return con; } public static bool insert(string que) { //根据传进来的SQL语句执行插入/删除/更新等操作 OleDbConnection con = odb.con(); con.Open(); OleDbCommand cmd = new OleDbCommand(que,con); int count = Convert.ToInt32(cmd.ExecuteNonQuery()); if (count > 0) return true; else return false; } public static DataTable ds(string que) {//返回一个装载了SQL制定留言的数据表, OleDbConnection con = odb.con(); OleDbDataAdapter oda = new OleDbDataAdapter(); oda.SelectCommand=new OleDbCommand(que,con); DataSet ds = new DataSet(); oda.Fill(ds,"thc"); return ds.Tables["thc"]; } public static bool img(string que) {//根据传来的条件查询该项是否有内容,有就返回true OleDbConnection con = odb.con(); con.Open(); OleDbCommand cmd = new OleDbCommand(que,con); if (cmd.ExecuteScalar().ToString() != "") return true; else return false; con.Close(); } public static string scr(string que) {//同样是根据传来的SQL语句返回一个字段的值,一般应该把SQL语句做在类中,这里没有放 OleDbConnection con = odb.con(); con.Open(); OleDbCommand cmd = new OleDbCommand(que,con); return cmd.ExecuteScalar().ToString(); } public static int num(string mm) {//根据要求返回一个一个显示条目数 return Convert.ToInt32(odb.scr("select ["+mm+"] from [config]")); } }
帖子四asp.net 做登录界面如何连接access数据库进行验证
using System; using System.Data; using System.Configuration; using System.Collections; 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; public partial class login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //以下产生随机的验证码,并在label1显示 Random ro = new Random(); if (!IsPostBack) { this.Label1.Text = ro.Next(1000, 9999).ToString(); } } protected void Button1_Click(object sender, EventArgs e) { if (this.name.Text != "")//判断用户名是否未空 { if (this.pwd.Text != "")//判断密码是否未空 { if (this.yanzhen1.Text != "")//判断验证码是否未空 { if (this.yanzhen1.Text == this.Label1.Text)//判断验证码是否相等 { string sql; sql = "select count(*) from userinfo where username='" + this.name.Text + "' and pwd='" + this.pwd.Text + "'";//建立sql查询语句 try { OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("./app_data /db.mdb"));//建立数据库连接 conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); int state =Convert.ToInt32( cmd.ExecuteScalar());//执行sql语句,并返回获得值 if (state == 0 || state > 1)//如果数据中没有记录或有多条记录则抱错 { this.Label2.Text = "用户不存在,请检测用户名和密码是否正确!"; } else { this.Label2.Text = "登入成功!" ; } conn.Close(); } catch (Exception a) { Response.Writea.Message); } } else { this.Label2.Text = "验证码不正确,请重新输入!"; } } else { this.Label2.Text = "验证码没有填写!"; } } else { this.Label2.Text = "密码没有填写!"; } } else { this.Label2.Text = "用户名没有填写!"; } } }
“C#用相对路径写法连接Access数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!