从Web.config文件中读取数据库连接的字符串
http://blog.youkuaiyun.com/zc707212993/article/details/46505139
(1)在Web.config文件中配置与数据库连接的字符串
对于应用程序而言,可能需要在多个页面的程序代码中使用数据连接字符串来连接数据库。当数据库连接字符串发生改变时(如应用程序被转移到其他计算机上运行),要修改所有的连接字符串。设计人员可以在配置字节中定义应用程序的数据库连接字符串,所有的程序代码从该配置节读取字符串,当需要改变连接时,只需要在配置节中重新设置即可。下面的代码演示了如何将应用程序的数据库连接字符串存储在配置节中。
2)获取Web.config文件中与数据库连接的字符串
可以通过一段代码获取与数据库连接的字符串,并返回SqlConnection类对象,代码如下:
SQLServer中ADO,OLEDB,ODBC的区别http://blog.youkuaiyun.com/zhaohuanhuanjiuqi/article/details/17270065
三种方式的差别:
如果是ADO方式,则
命名空间中引入的是:ImportsSystem.Data.SqlClient
连接数据库使用的相应对象为:SqlCommand,SqlConnection,SqlDataAdapter,SqlDataReader
如果是ODBC方式,则
命名空间中引入的是:ImportsSystem.Data.Odbc
连接数据库使用的相应对象为:OdbcCommand,OdbcConnection,OdbcAdapter,OdbcDataReader
如果是OLEDB方式,则
命名空间中引入的是:ImportsSystem.Data.Oledb
连接数据库使用的相应对象为:OledbCommand,OledbConnection,OledbAdapter,OledbDataReader
怎么查看软件是32位的还是64位的
首先我们在要查看的软件图标上面右击,在弹出来的菜单中选择“属性”。然后看其安装路径,如果路径中含有Program Files (x86),那么软件就是32位的,如果只含有Program Files而没有 (x86),那么就是64位的。
任务管理器——进程:
然后看其名称,如果含有*32,那么不用说就知道是32位的,如果没有就是64位的。
文件位置的表示相关问题:
目录概念:运行的应用程序的当前工作目录和运行应用程序所在的目录的区别?
解释(初步自我理解):应用程序白话就是那个可执行的程序文件本身,这个文件(例如.exe文件)所在的目录。
应用程序所在的目录(运行目录?):该进程从中启动的目录,即程序文件自身所在的目录。
所以,当前工作目录和程序所在的目录可以不同。
Windows获取程序全路径的接口是:GetModuleFileName
CRun-Time库获取程序全路径接口是:_get_tpgmptr
工作目录:是一个环境变量,可在程序运行后随时进行设置更改。工作目录主要影响程序中使用到的相对路径。
当前工作目录(CurrentWorkingDirectory)
一般来说,每个进程都有一个与之相关联的分级文件系统(hierarchicalfile system)下的目录,称之为该进程的当前工作目录。
如果程序刚进入main入口处的时候,当前工作目录其实就是程序启动的目录,但是当前工作目录是可以通过程序进行设置或者随着OpenFileDialog、SaveFileDialog等对象所确定的目录而改变。
如何:查找 Web 应用程序的根目录https://msdn.microsoft.com/zh-cn/library/ms521436(v=office.12).aspx
弄清概念:
应用程序和网站的区别:
如何更改当前 Web 应用程序根目录
1、在批处理文件中经常看见有"program~1"之类的写法,又如"%~dp0bin\amd64\vcvarsamd64.bat",有谁知道其中的"~"是什么意思?
因为纯DOS只支持8.3命名规则,文件基本名必须小于8个字符。Program~1,加上最后的数字序号可能是有两个或两个以上的文件夹或文件,并且它们名称开头的7个字符是一样的。
program~1是转成了短文件名,后面的1代表是当前目录下排序progra六个字母开头的第一个文件夹,如果还有一个文件夹前面六个字符一样,后面的数字类推为2,此处的~为省略的意思。
%~dp0 这个不能单独看~,而是%~为一组,是扩充一个变量的表示,%~dp0表示把当前路径扩充为一个驱动器号+路径,d是驱动器号的意思,p是路径的意思,这里的0是当前路径的意思。
2、c语言中 文件路径\和\\有什么区别吗
在计算机C语言编码中,反斜杠“\"是有特殊意义的。反斜杠表示一个转义字符,单个斜杠不能使用,必须组合来用,详情可以百度百科。转义字符与其后的信息组合使得后面的信息不再是原有的意思,如:\n表示换行 \t表示一个TAB键。
如果想表示真正的一个反斜杠,必须采用\\的方式来显示。\\ 就用\\\\。
windows下文件路径是用\分隔的,比如C:\Windows\System32\就是一个标准的windows路径。
在C语言中,文件路径会被写作字符串形式,但是由于C语言的字符串规则中,\字符是转义字符的引导,所以直接写"C:\Windows\System32\"会出错。而字符'\\'才是表示\。
于是在写路径的时候,就必须是"C:\\Windows\\System32\\"即,写成单独的\的,是windows的标准形式,而写成\\的,才是C语言中用到的形式。
有关Server.Mappath详细接触http://www.jb51.net/article/5897.htm
Server.MapPath可以取得网站或虚拟目录下某个文件夹下的某个文件的磁盘路径。获得的路径都是服务器上的物理路径,也就是常说的绝对路径。
网站和虚拟目录是两个概念!!!!!!!!!
目的(自己理解):网站(或者虚拟目录)—转换为—>物理路径
Server.MapPath()
./当前目录
/网站主目录
../上层目录
~/网站虚拟目录
如果当前的网站目录为E:\wwwroot 应用程序虚拟目录为E:\wwwroot\company 浏览的页面路径为E:\wwwroot\company\news\show.asp
在show.asp页面中使用
Server.MapPath("./") 返回路径为:E:\wwwroot\company\news
Server.MapPath("/") 返回路径为:E:\wwwroot
Server.MapPath("../") 返回路径为:E:\wwwroot\company
Server.MapPath("~/") 返回路径为:E:\wwwroot\company
server.MapPath(request.ServerVariables("Path_Info"))
Request.ServerVariables("Path_Translated")
上面两种方式返回路径为 D:\wwwroot\company\news\show.asp
MapPath 方法不检查返回的路径是否正确或在服务器上是否存在。
因为 MapPath 方法只映射路径而不管指定的目录是否存在,所以,您可以先用 MapPath 方法映射物理目录结构的路径,然后将其传递给在服务器上创建指定目录或文件的组件。
Server.MapPath( Path )
参数path
指定要映射物理目录的相对或虚拟路径。若 Path 以一个正斜杠 (/) 或反斜杠 (\) 开始,则 MapPath 方法返回路径时将 Path 视为完整的虚拟路径。若 Path 不是以斜杠开始,则 MapPath 方法返回同 .asp 文件中已有的路径相对的路径。
MapPath 方法不支持相对路径语法 (.) 或 (..)。例如,下列相对路径 ../MyDir/MyFile.txt 返回一个错误。
c#中:
System.Web.HttpContext.Current.Server.MapPath("")只能用Web程序中。
winform用Application.StartupPath与Application.ExecutablePath之类的,System.Environment.CurrentDirectory可以。
启动路径才是真正的路径,你的源码根目录获取了没意义,因为程序发布出去没有源码,只有可执行文件和dll,只有启动路径,所以你调试的时候,应该把所需文件扔到bin\debug\下面,而不是源码的根目录。
一、使用OleDbConnection对象连接OLE DB数据源
1.连接Access 数据库
Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data Source=Access文件路径”
Access 2003: “provider=Microsoft.Jet.Oledb.4.0;Data Source=Access文件路径”
Access 2007: “provider=Microsoft.Ace.Oledb.12.0;Data Source=Access文件路径”
备注:Access数据库只提供两个连接属性provider(数据提供程序)和data source(数据源);
Access2000\2003的文件格式是“.mdb”,,Access2007的文件格式是“.accdb”
Access的数据提供程序版本是向下兼容的,在Win7下测试使用Microsoft.Jet.OLEDB.3.5提示“未在本地计算机上注册“Microsoft.Jet.OLEDB.3.5”提供程序。”,改用Microsoft.Jet.OLEDB.4.0或者Microsoft.Ace.OLEDB12.0完全可以访问Access2000的数据库文件。当然也可以尝试使用微软提供的MDAC 来修改provider的版本。
2.连接Excel数据库
Excel 2003: “provider=Microsoft.Jet.OLEDB.4.0;Data Source=Access文件路径;extended properties=excel 8.0”
Excel 2007: “provider=Microsoft.Ace.OLEDB.12.0;Data Source=Access文件路径;extended properties=excel 12.0”
备注:在代码中引用工作表时,应将表名表示为“[工作表名$]”,遇到字段为数据库保留关键字时,给该字段名加上[ ]以示区别,如定义select 语句时:string connStr=”select * from [login$] where username=’abc’ and [password]=’abc123’ ”;
如果在数据表中用数字作为文本类型数据时,则应在数字前加单引号将默认的数值强行设定为文本类型。
3.连接SQL Server数据库
provider=SQLOLEDB; Data Source=服务器名; Initial Catalog=数据库名; uid=用户; pwd=密码
C#中 Server.MapPath 方法的几个注意点 - [开发记录,清晰]
http://blog.youkuaiyun.com/gaotongzhao/article/details/6717055
二、使用SqlConnection对象连接SQL Server数据库
声明:以下连接的属性都可以参考“SQL Server 数据库连接字符串参数一览表”取它的别名;除了必须设置的属性以外还可以设置其他辅助的属性。如Connect Timeout、Encrypt等
设置数据库文件路径的方法:
1.使用绝对路径:“AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf”
2.使用服务器相对路径:“AttachDbFilename=”+Server.MapPath(“\\App_Data\\data.mdf”)
3.使用最简单的相对路径:“AttachDbFilename=|DataDirectory|\\data.mdf”
推荐使用第3种方式,“|DataDirectory|”代表ASP.NET项目里自动创建的App_Data文件夹
1.以SQL Server验证模式连接SQLServer
(1)以数据库名连接方式
Server=服务器名; Database=数据库名称; User ID=用户名; Password=密码 或者(使用缩写与别名)
Server=服务器名; Initial Catalog=数据库名称; Uid=用户; Pwd=密码
(2)以数据库文件完整路径连接方式
“Serve=服务器名;AttachDbFilename=数据库文件路径;User ID=用户名;Password=密码”
示例:
Server=.\SQLEXPRESS; Database=DatabaseName; User ID =sa; Password=abc123” Server=.\SQLEXPRESS; Initial Catalog =DatabaseName; Uid =sa; Pwd=abc123” Server=(local)\SQLEXPRESS;
AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf;User ID =sa; Password=abc123”
备注:密码可以为空。
2.以Windows 验证模式连接SQL Server
(1)以数据库名连接方式
Server=服务器名; Database=数据库名称; Integrated Security=SSPI
(2)以数据库文件完整路径连接方式
“Serve=服务器名;AttachDbFilename=数据库文件路径; Integrated Security=true”
示例:
Server=服务器名; Database=数据库名称; Integrated Security=SSPI Server=(local)\SQLEXPRESS; AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf; Integrated Security=true” 备注:SSPI即为true
三、使用OdbcConnection对象连接ODBC数据源
“Driver=数据库提供程序名;Server=服务器名; Database=数据库名;Trusted_Connection=yes”
示例:
首先要在计算机管理à数据源à配置好相对应的数据源(选择数据库类型,设置数据库文件路径与相对应的数据库名)
Driver= Microsoft.Jet.OLEDB.4.0; Server=.\SQLEXPRESS; Database=DatabaseName; Trusted_Connection=yes
四、使用OracleConnection对象连接Oracle数据库
Data Source=Oracle8i; Integrated Security=yes
ASP.NET连接ACCESS数据库web.config内相对路径写法
http://blog.163.com/fan_yishan/blog/static/4769221320138192021582/
asp.net中的数据连接语句
ADO 被用于从网页访问数据库。
您应当具备的基础知识
在继续学习之前,您需要对下面的知识有基本的了解:
- WWW、HTML 以及对网站构建的基本了解
- ASP(动态服务器页面)
- SQL(结构化查询语言)
如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。
什么是 ADO?
- ADO 是一项微软的技术
- ADO 指 ActiveX 数据对象(ActiveX Data Objects)
- ADO 是一个微软的 Active-X 组件
- ADO 会随微软的 IIS 被自动安装
- ADO 是一个访问数据库中数据的编程接口
从 ASP 页面访问数据库
从一个 ASP 页面内部访问数据库的通常的方法是:
- 创建一个到数据库的 ADO 连接
- 打开数据库连接
- 创建 ADO 记录集
- 从记录集提取您需要的数据
- 关闭记录集
- 关闭连接
/// Class1 的摘要说明
///
public class superConn
{
private OleDbConnection cnn;
private OleDbCommand cmd;
private OleDbDataReader datar;
public superConn(string mdbFileName)
{
string _path = "~\\App_Data\\" + mdbFileName;
string str_conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ System.Web.HttpContext.Current.Server.MapPath(_path);
cnn = new OleDbConnection(str_conn);
// TODO: 在此处添加构造函数逻辑
}
将accdb数据库格式改为mdb格式,问题解决!!!!!
u-pwd
异常详细信息:System.IndexOutOfRangeException: u-pwd
源错误:
|
源文件:c:\Users\Administrator\Documents\Visual Studio 2015\WebSites\WebSite1\App_Code\MyClasses.cs 行:31
堆栈跟踪:
|
{
isLogin = false;
superConn sconn = new superConn("userInfo.mdb");
sconn.open();
string _sql = "select * from t_userinfo where u_userid='" + userID + "'";
OleDbDataReader dr = sconn.GetDataReader(_sql);
if (dr.Read())
{
if (dr["u-pwd"].ToString() == userID)
isLogin = true;
}
一切正常!!