ado.net将数据库连接字符串放入配置文件中

Ado.Net连接数据库 本文将深入探讨ADO.Net中连接池管理了解如何确保数据一致性和完整性。同时,掌握连接池的概念及其在提高性能方面的作用。重点讲解如何使用ADO.Net建立数据库连接。通过介绍连接字符串的组成和Connection对象的使用,帮助您了解如何建立稳定、高效的数据连接,通过本文,您将更全面地了解ADO.Net的高级特性。 阅读详情

新建项目,应用程序配置文件,App.config,名字必须是这样
<configuration>
<connectionStrings>
<add name="英文名随意" connectionString="数据库连接字符串"/>
</connectionStrings>
</configuration>
然后项目要引用一个类,该类位于.Net-->System.Configuration,
代码中:
string connstr = ConfigurationManager.ConnectionStrings["linkDBStr"].ConnectionString;


配置文件:

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="linkDBStr" connectionString="Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505"/>
  </connectionStrings>
</configuration>

C#知识点5:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

namespace WPFDemo01
{
    /// <summary>
    /// ADOBasic.xaml 的交互逻辑
    /// </summary>
    public partial class ADOBasic : Window
    {
        public ADOBasic()
        {
            InitializeComponent();
        }

        private void btnLink_Click(object sender, RoutedEventArgs e)
        {
             //对实现了IDisposible接口的,使用using关键字,它能控制对资源的释放,具体的自行百度。语法是
            //using(类型d = new (这里面指的是创建对象)......){.................}他可以自动回收资源,不用自己关闭数据库
            //以后都这么写,conn.close();的方法前面程序挂掉了,那么数据库就没有关,这样时间久了会造成数据库泄露

            //SqlConnection建立和数据库的连接



            //1.第一种,
            //ExecuteNonQuery()通常用来执行Update,Delete,Insert语句,就如单词所示NonQuery,非查询!
            //using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505")) 
            //{
            //    conn.Open();
            //    MessageBox.Show("数据库连接成功!");
            //    //通过连接创建一个向数据库发命令(command)的对象
            //    using(SqlCommand cmd = conn.CreateCommand())
            //    {
            //        //CommandText为要执行的sql语句
            //        cmd.CommandText = "insert into T_Students(id,name,age,aihao,height) values (101,'刘亦菲',23,'北京吧',170);";
            //        cmd.ExecuteNonQuery();  //开始执行
            //    }
            //}





            //2.第二种,
            //查询用ExecuteScalar()返回的是一行一列的值
            //using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505")) 
            //{
            //    conn.Open();
            //    using(SqlCommand cmd = conn.CreateCommand())
            //    {
            //        //例1:
            //        //cmd.CommandText="select count(*) from T_Students";
            //        //ExecuteScalar()返回的是一行一列的值使用该类型,意思就是查询的结果只有一个,
            //        //因为其返回的是object类型,所以根据我们返回的实际类型可以进行强制类型转换,
            //        //这里一定要写对对应类型,比如数据库中的varchar类型对应C#中的是string,
            //        //bigint类型对应的是long类型
            //        //int i =(int)cmd.ExecuteScalar(); 
            //        //MessageBox.Show("查询到结果数为:"+i+"条");

            //        //例2:
            //        //cmd.CommandText = "select 'dafa'";
            //        //string s = (string)cmd.ExecuteScalar();
            //        //MessageBox.Show(s);


            //        //例3:
            //        //本数据库中自增长字段为addId,其值是数据库自动分配的,
            //        //那么我们如何得知本数据的addId是多少呢?
            //        cmd.CommandText = "insert into T_Students(id,name,age,aihao,height) output inserted.addId values (10000,'离死',102,'',80)";
            //        int i = (int)cmd.ExecuteScalar();
            //        MessageBox.Show("当前addId为:"+i);
            //    }
            //}

           
            
            
            
            //3.第三种,
            //执行有多行结果的结果集用ExecuteReader,同样是实现IDisposible接口的
            //SqlDataReader reader = cmd.ExecuteReader();.....
            //while(reader.Reader())
            //{
            //Console.writeLine(reader.GetString(1));
            //}这里要和注意,该查询结果是放在数据库中的,没有放到
            //客户端,初始指针指向第一条数据之前,每调用一次Reader指针
            //下移一条,只要没有移到最后一条之后,就一直返回true
            //reader的GetString、GetInt32的方法只接受整数参数,
            //也就是序号,用GetOrdinal方法根据列名动态得到序号
            using(SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505"))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand()) 
                {
                    cmd.CommandText = "select * from T_Students;";
                    using (SqlDataReader reader = cmd.ExecuteReader()) 
                    {
                        while(reader.Read())
                        {
                            string name = reader.GetString(1);  //根据数据库返回值类型写C#对应类型,这里面的参数表示返回该行的第几列
                            int age = reader.GetInt32(2);   //这里的类型对应有点麻烦,要注意
                            MessageBox.Show("名字是:"+name+"   "+"年龄是:"+age);
                        }
                    }
                }
            }

            MessageBox.Show("执行完成~!");
        }




        private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            using(SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505"))
            {
                conn.Open();
                using(SqlCommand cmd = conn.CreateCommand())
                {
                    //此字符串拼接方法,如果这里输入“1' or '1'='1”,则会查出所有的结果,造成了SQL注入漏洞
                    //cmd.CommandText = "select * from T_Students where name = '"+txtPerson.Text+"'";

                    //@Name是占位符,表示我这里需要一个Name的值,这样看起来更有意义,但是name这个词可以换成其他的任意词
                    cmd.CommandText = "select * from T_Students where Name=@Name or Age=@Age";
                    //用法1:
                    //cmd.Parameters.AddWithValue("@Name",txtPerson.Text);
                    //用法2:推荐使用
                    cmd.Parameters.Add(new SqlParameter("@Name",txtPerson.Text));
                    //注意如果是别的类型的注意转换类型
                    cmd.Parameters.Add(new SqlParameter("@Age", Convert.ToInt32(txtPerson.Text)));
                    //此语句也可以用在如下语句等
                    //insert into......values(@Name,@Age...)
                    //delete ...... where ID=@idAdd

                    //注意"@参数"不能用在替换表名、字段名、select之类的关键字等。
                    //如下都是不可以的!
                    //select age from @TableName..
                    //select @AgeName from table...



                    using(SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while(reader.Read())
                        {
                            //GetInt32获得的是int类型
                            //GetInt64获得的是long类型(数据库中是bigint)
                            int id = reader.GetInt32(0);
                            string name = reader.GetString(1);
                            int age = reader.GetInt32(2);
                            string address = reader.GetString(3);
                            int addId = reader.GetInt32(4);
                            MessageBox.Show(id.ToString()+"   "+name+"   "+age.ToString()+"   "+address+"   "+addId.ToString());
                        }
                    }
                }
            }
        }



        //4.第四种
        //SqlDataReader是连接相关的,SqlDataReader中的查询结果并不是放到程序中,
        //而是放在数据库服务器中,SqlDataReader只是相当于放了一个指针(游标),只能
        //读取当前游标指向的行,一旦连接断开就不能再读取。这样做的好处就是无论查询
        //结果有多少条,对程序占用的内存都几乎没有影响。
        //SqlDataReader对于小数据量的数据来说带来的只有麻烦。ado.net中提供了数据集的
        //机制,将查询结果填充到本地内存中,这样连接断开、服务器断开都不影响数据的读取。
        //数据集的好处就是降低数据库服务器压力,编程也简单。
        //DataSet dataset = new DataSet();
        //SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        //adapter.Fill(dataset);
        //DataSet包含若干表DataTable,DataTable包含若干行DataRow,

        private void btnDataSet_Click(object sender, RoutedEventArgs e)
        {
            using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505"))
            {
                conn.Open();
                using(SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from T_Students where age<@Age";
                    cmd.Parameters.Add(new SqlParameter("@Age",txtAge.Text));

                    //SqlDataAdapter是一个帮我们把SqlCommand查询的结果
                    //填充到DataSet中的一个类
                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);

                    //DataSet相当于本地的一个复杂集合(类似于List<int>)
                    DataSet dataset = new DataSet();
                    //执行cmd并且把SqlCommand查询的结果填充到DataSet
                    adapter.Fill(dataset);

                    //dataset可以放多个表,我们只放了一个表,所以下标为0
                    DataTable table = dataset.Tables[0];
                    //得到表中有多少行
                    DataRowCollection rows = table.Rows;
                    for (int i = 0; i < rows.Count; i++ )
                    {
                        //取出多行中的第i行
                        DataRow row = rows[i];
                        //分别去除第i行中的各个列的值
                        int age = (int)row["Age"];
                        string name = (string)row["Name"];
                        MessageBox.Show(name + ","+age);
                    }
                }
            }
        }





        //5.第五,连接字符串配置
        //(1)新建项目,应用程序配置文件,App.config,名字必须是这样
//        <configuration>
//            <connectionStrings>
//                <add name="英文名随意" connectionString="数据库连接字符串"/>
//            </connectionStrings>
//        </configuration>
//        (2)然后项目要引用一个类,该类位于.Net-->System.Configuration,
//        代码中:
//       string connstr = ConfigurationManager.ConnectionStrings["linkDBStr"].ConnectionString;

        private void btnConfig_Click(object sender, RoutedEventArgs e)
        {
            string connstr = ConfigurationManager.ConnectionStrings["linkDBStr"].ConnectionString;
            MessageBox.Show(connstr);
        }
    }
}



ADO.Net读取配置文件中的连接字符串 ADO.Net读取配置文件中的连接字符串              这些天一直在学习ADO.Net的知识点,我对程序和数据库的连接字符串的学习有了一点新的知识,和大家一起分享一下:             通过ADO.Net连接程序和SQLServer数据库的连接字符串: "DataSource=.\SQLEXPRESS; AttachDBFilename=|DataDirector 阅读详情

相关推荐

ADO.NET连接操作SQLServer数据库

本文章从简单的c#连接数据到基础增删改查数据库,最后进行了封装复用在实际开发中具有很大的帮助(所有代码均可复制)

m0_62366581的博客 3107

用Ado.Net实体数据模型 向sql数据库添加数据

1.添加“Ado.Net实体数据模型”类型的文件到项目zh

xuanwuziyou的专栏 7398

ADO.NET 访问数据库

前言 最近一直在学习数据库,那么数据库是如何和客户端建立了连接呢?怎么就可以把数据库的数据传送到客户端或客户端的数据是如何存到数据库中的呢?...

Nikita 2642

在.NET Framework中的连接字符串ConnectionStrings属性

在这个例子中,我们在窗体加载时打开数据库连接。一旦连接成功,我们显示一个消息框来确认连接成功。如果发生任何错误,我们将显示一个包含错误消息的消息框。属性是用来访问在Visual Studio IDE应用程序配置文件中配置的。NuGet包,并使用新的配置系统。另一方面,如果你的项目是.NET Core或.NET 5+,在这个.NET Core示例中,连接字符串是从一个名为。在.NET Framework中,元素的形式出现,该元素是。的文件中获取的,而不是从。已经被弃用,你需要安装。,你需要在项目中引用。

book_dw5189的博客 2737

ADO连接字符串的书写

ADO连接字符串的书写 Sql Server       · ODBC       o 标准连接(Standard Security):      "Driver={SQL Server};Server=Aron1;Database=pubs;Uid=sa;Pwd=asdasd;"       1)当服务器为本地时Server可以使用(local);      "Driver={SQL Serve

sky982的专栏 1190

ASP.NET数据库连接字符串总结

ASP.NET连接各种数据库的连接字符串总结,包括Access ,Excel,SQL Server,ODBC,Oracle

.net的数据库连接字符串

在MSDN中,.net的数据库连接字符串都有详细的说明,我这里以代码范例的方式罗列一些,具体的每一项代表的意义可以参看MSDN.ADO.net 中数据库连接方式(微软提供)微软提供了以下四种数据库连接方式:System.Data.OleDb.OleDbConnectionSystem.Data.SqlClient.SqlConnectionSystem.Data.Odbc.OdbcConn

2304

Ado.Net数据库连接字符串大全

OLEDB,ODBC,SQL,ORACLE数据库联接详细步骤,很有用。

.net连sql server的连接字符串 配置方式

server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码 Data Source=计算机名称或ip地址;Initial Catalog=数据库名称;Integrated Security=True

keenweiwei的专栏 4591

C#ADO.Net连接数据库

C#ADO.Net连接数据库

ASP.NET中操作SQL数据库(连接字符串的配置及获取)

要想在ASP.NET中操作SQL数据库首先需要在WebConfig中配置数据库连接字符串,之后在.cs文件中获取连接字符串,具体的配置及获取方法如下,感兴趣的朋友可以参考下哈

ADO.net连接字符串

基本语法:数据源(Data Source)+数据库名称(Initial Catalog)+用户名(User ID)+密码(Password) SQL Server连接字符串 标准安全连接:  Data Source=.;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;或者 Server=myServerAd...

陈广晗 673

TouchGFX在STM32上的移植全过程:超详细版指南

深入讲解将TouchGFX集成到STM32开发环境的每一步,涵盖配置、驱动适配与UI调试。无论是初学者还是进阶开发者,都能快速掌握TouchGFX在嵌入式平台的应用技巧。

weixin_42443533的博客 600

(4)C#之ADO.NET 将数据库连接字符串成放入配置文件中

考虑到代码的安全性,已经修改起来的方便性,我们常常不会将数据库连接字符串直接放在代码中,而是将这个字符串放到一个App.config配置文件中,赋值给一个变量,然后再在代码中引用这个变量。 具体做法如下: ①右键项目名称,新建一个“应用程序配置文件”改名为App.config。 ②在App.config中添加如下代码 1 <configuration&...

weixin_30673715的博客 246

Flutter UI代码生成实战:Cursor与MCP的企业级规范适配

本文探讨了在企业级Flutter项目中,如何通过配置Cursor Rules与定制Figma MCP工具,为AI代码生成设定严格的开发规范。该方法解决了AI生成代码与现有项目架构、命名约定及资源引用规范脱节的核心痛点,实现了从Figma设计稿到高质量、可维护Flutter UI代码的自动化流程,显著提升团队协作效率与代码一致性。

http9protocoller的博客 280

Windows下用Anaconda安装d2l库避坑指南(附PermissionError解决方案)

本文详细介绍了在Windows系统下使用Anaconda安装d2l库的完整指南,特别针对常见的PermissionError问题提供了多种解决方案。从环境准备到库安装,再到VSCode配置和数据路径处理,帮助读者顺利搭建深度学习环境并运行《动手学深度学习》的代码示例。

3a9bq4r8t2y的博客 224

ADO连接数据库字符串大全

ADO连接数据库字符串大全 This page contains sample ADO connection strings for ODBC DSN / DSN-Less, OLE DB Providers, Remote Data Services (RDS), MS Remote, MS DataShape. Also included are ADO.NET connection stri

haley_hj的专栏 1285

安装esxi7.0

保存重启后就能安装。vCenter Server是VMware vSphere虚拟化架构中的核心管理工具,充当ESXi主机及虚拟机中心管理点的服务,利用vCenter Server,可以集中管理多ESXi主机及其虚拟机,安装、配置和管理vCenter Server 不当可能会导致管理效率降低,或者致使EXSi主机和虚拟机停用。提示选择安装VMware ESXi 使用的存储,ESXi支持U盘以及SD卡安装,如系统中存在多块存储设备,选择需要安装系统的磁盘【注意磁盘142G,ESXI会将120G做VMFSL】

u011220233的博客 1万+

ADO.NET连接字符串大全

<br />ADO.NET连接字符串名称ADO.NET连接字符串说明ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingres,Mimer SQL,Lightbase,PostgreSQL,Paradox,DNS,Firebird,Excel ,Text,DBF / FoxPro,AS/400 (iSeries),Exchange,Visual FoxPro,Perv

在键盘上飞舞的日子 1197

城市仿真软件:AnyLogic_(8).行人与人群动态仿真

定义行人个体的行为和属性,如行走速度、目标位置等。// 创建一个行人// 设置行走速度为1.5 m/s// 设置目标位置为入口// 创建另一个行人// 设置行走速度为1.2 m/s// 设置目标位置为出口// 创建行人// 创建乘客行人与人群动态仿真在城市规划、交通管理和紧急疏散等领域具有广泛的应用。通过AnyLogic提供的行人模型模块,可以有效地模拟行人的个体行为、群体动态和与环境的交互。

kkchenjj的博客 1247

PD详解—第一章—Type-C连接

Type-C连接 今天大师匈下班比较早,再给大家侃一侃PD,希望大家支持。 PD和Type-c的关系 首先讲一下PD快充的实现步骤,本文主要是Source端(电源),Sink端的差不多也一样,只是策略不同而已。 TypeC连接-->广播电源能力Source capbility(数据交互)->打电压电流->等待其他指令。 所以typec连接是第一步,很多人会从字面意思理解typec连接,这不就是把线给插上去就好了吗? 不知道有没有优秀的同学想到正确答案; 正确答案:typec连接的本质是为

大师匈的博客 1万+

ADO连接数据库字符串大全(VP,Excel,文本,Sybase,.NET等)

 ADO连接数据库字符串大全(VP,Excel,文本,Sybase,.NET等)(转载)This page contains sample ADO connection strings for ODBC DSN / DSN-Less,OLE DB Providers, Remote Data Services (RDS), MS Remote, MS DataShape. Also inclu

风之力的专栏 1235

快速卷积结构FIR数字滤波器的设计与ARM平台实现

本文提出了一种基于快速卷积结构的FIR数字滤波器设计与实现方案。通过Matlab设计了满足特定指标的低通FIR滤波器,采用重叠-保存法和重叠-相加法两种快速卷积算法,将计算复杂度从O(N·M)降低到O(NlogN)。详细介绍了滤波器系数生成、性能验证流程,并提供了ARM平台C语言实现的关键技术,包括定点量化处理。实验结果表明,该方法能有效滤除混合信号中的高频干扰,保留目标1kHz正弦信号,验证了设计方案的有效性。

huanghm88的专栏 123

ADO.NET连接SQLSERVER数据库 连接字符串

ADO.NET连接SQLSERVER数据库连接字符串: DataSource=localhost;AttchDBFilename=|DataDirectory|\Database1.mdf;InitialCatalog=UserDate;IntegratedSecurity=True参数说明: DataSource表示数据源,其值为服务器地址和实例名,如果是正式...

acnep3115的博客 767

解锁机器人逆运动学算法:从理论到实战

机器人逆运动学,简单来说,就是已知机器人末端执行器(如机械臂的手部、工具等)期望达到的位置和姿态,求解机器人各个关节需要达到的角度或位移的过程。在机器人的实际应用场景中,逆运动学起着不可或缺的作用。以工业制造中的焊接机器人为例,为了完成复杂的焊接任务,焊接头(末端执行器)需要精准地到达工件上的各个焊接点,并保持合适的姿态以确保焊接质量。这时,逆运动学算法就根据焊接点的三维坐标以及焊接头应有的姿态(如角度等),计算出机械臂各个关节的转动角度,从而控制机械臂带动焊接头准确地运动到目标位置。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2052

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ADO.NET连接SQL Server数据库

ADO.NET连接SQL Server数据库   在.NET应用程序中,创建数据连接分为三步: 一、定义连接字符串         不同的数据库连接字符串的格式不同,一般都包括要连接的数据库提供都名称、登陆信息以及要使用的数据库名称。         注意:在定义连接字符串之前,一定要引入相应的命名空间。         所有的连接都要用到连接字符串ConnectionStri

刘海燕 廊坊师范学院信息技术提高班 第八期 1688

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: ado.net中的DataSet使用
下一篇: 长度可变参数
Timesongs
博客等级 码龄14年 15粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值