c#连接数据库

根据查询结果保存在数据库服务器端还是本地客户端,可分两种连接数据库的方式
那么这两种方式的好坏:
   查询结果保存在数据库服务器:之所以要保存在数据库服务器端,是因为一旦查询结果数据量大,如果保存在本地会占用大量的内存,所以该方式的优点是不占内存。但对  于 数据量小情况下,还要时刻与数据库保持连接,一旦连接断开,数据库出现异常,就不能获取数据,所以才有了dataset集合,很好的弥补了这些缺陷。因为此方式是查询完后直接将结果装到dataset集合里,再无与数据库有任何关联,但需要占一定内存

    1.查询结果保存在数据库服务器端

         using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=exercise;User ID=sa;Password=123456"))
            {
                conn.Open();//打开链接
                SqlCommand cmd = conn.CreateCommand();  // 创建执行sql命令对象
                cmd.CommandText = "select * from product where statu
=@statu";  // 设置用于拼接sql语句中的变量参数,防止sql注入漏洞(1‘or'1'='1)
                cmd.Parameters.Add(new SqlParameter("@statu",txtName.Text)); //给参数设值
                using (SqlDataReader reader = cmd.ExecuteReader())  // ExecuteReader()  执行sql,将结果存到sqldatareader这个类中         

                while (reader.Read()) // read()方法 表示从结果中以指针的方式从第一条数据之前指向最后一条数据之后,期间都返回为true,直到指向完毕返回false
                    {                    
                        MessageBox.Show(reader.GetString(0)); //reader.GetString(0) 表示结果中第0列的值
                    }
                }
            }

        ******:        

        using(){ } :using 块用于释放资源,一般()中 类实现了IDispose 接口,大括号代码执行完毕,资源释放,先前微软没有退出using 用法,资源回收都是要靠try catch来做,更加麻烦
        Data Source=.;Initial Catalog=exercise;User ID=sa;Password=123456 数据库连接信息:Data Source:数据库地址,"."表示本地;Initial Catalog:数据库名称
        User ID:用户名,Password:密码

   2.查询结果保存在本地客户端

       using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=exercise;User Id=sa; Password=123456"))
            {
                SqlCommand cmd = conn.CreateCommand();//
                cmd.CommandText = "select * from product where statu = @statu";
                cmd.Parameters.Add(new SqlParameter("@statu", txtName.Text));
                SqlDataAdapter adpater = new SqlDataAdapter(cmd); //  SqlDataAdapter这个类用于填充dataset集合,管理cmd
               
DataSet dataset = new DataSet(); // 实例化一个dataset ,该类是用来存放查询结果的一个复杂集合,查询完毕后,就可以关闭数据库连接
                adpater.Fill(dataset); // 执行sql,将查询结果放入dataset
                conn.Close(); //关闭数据库连接
                DataTable table = dataset.Tables[0]; // datatable 查询结果集,以表的形式,因支持多条select 语句,所以dataset.Tables需要有索引
                DataRowCollection rows = table.Rows; // 查询结果集合表中的行集
                DataRow row;
                string name;
                for (int i = 0; i < rows.Count; i++)
                {
                    row = rows[i]; // 单行
                    name = (string)row["pro_desc"]; // 单行中的某一列,这里是pro_desc 这一列
                    MessageBox.Show(name); //显示信息
                }
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库的连接,基本的连接方法namespace data { partial class Form1 { /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.button1 = new System.Windows.Forms.Button(); this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.aaDataSet = new data.aaDataSet(); this.aaDataSetBindingSource = new System.Windows.Forms.BindingSource(this.components); this.Column1 = new System.Windows.Forms.DataGridViewButtonColumn(); this.Column2 = new System.Windows.Forms.DataGridViewButtonColumn(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.aaDataSet)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.aaDataSetBindingSource)).BeginInit(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(110, 227); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // dataGridView1 // this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.Column1, this.Column2}); this.dataGridView1.Location = new System.Drawing.Point(32, 12); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.RowTemplate.Height = 23; this.dataGridView1.Size = new System.Drawing.Size(240, 150); this.dataGridView1.TabIndex = 1; // // aaDataSet // this.aaDataSet.DataSetName = "aaDataSet"; this.aaDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; // // aaDataSetBindingSource // this.aaDataSetBindingSource.DataSource = this.aaDataSet; this.aaDataSetBindingSource.Position = 0; // // Column1 // this.Column1.HeaderText = "Column1"; this.Column1.Name = "Column1"; // // Column2 // this.Column2.HeaderText = "Column2"; this.Column2.Name = "Column2"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 262); this.Controls.Add(this.dataGridView1); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.aaDataSet)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.aaDataSetBindingSource)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button button1; private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.DataGridViewButtonColumn Column1; private System.Windows.Forms.DataGridViewButtonColumn Column2; private aaDataSet aaDataSet; private System.Windows.Forms.BindingSource aaDataSetBindingSource; } }
C#中连接MySQL数据库可以使用MySql.Data.MySqlClient命名空间提供的类和方法。引用\[1\]中给出了两种连接MySQL数据库的方法。第一种方法是通过创建MySqlConnection对象并设置连接字符串来连接数据库。在这个方法中,需要提供MySQL服务器的地址、用户名、密码和数据库名称。然后调用Open方法打开连接。如果连接成功,返回一个MySqlConnection对象。如果连接失败,返回null。第二种方法是通过调用ConnectMySql方法来连接数据库。这个方法内部也是使用了MySqlConnection对象和连接字符串来连接数据库。如果连接成功,返回true。如果连接失败,返回false。引用\[2\]中给出了一个使用DataGridView控件显示MySQL数据库表中数据的示例。在这个示例中,首先需要创建一个MySqlConnectionStringBuilder对象,并设置连接字符串的相关属性。然后创建一个MySqlConnection对象,并使用连接字符串来初始化它。接下来,可以使用DataGridView控件来显示数据库表中的数据。通过设置DataGridView的DataSource属性和DataMember属性,将数据绑定到DataGridView上。引用\[3\]中给出了一个向数据库中添加数据的示例。在这个示例中,首先需要编写一个SQL查询语句,然后创建一个MySqlDataAdapter对象,并使用查询语句和MySqlConnection对象来初始化它。接下来,创建一个DataSet对象,并使用MySqlDataAdapter的Fill方法将查询结果填充到DataSet中。最后,将DataSet中的数据绑定到DataGridView上,以显示数据库表中的数据。总结起来,连接MySQL数据库可以使用MySql.Data.MySqlClient命名空间提供的类和方法,通过创建MySqlConnection对象并设置连接字符串来连接数据库使用DataGridView控件显示数据库表中的数据,使用MySqlDataAdapter对象执行SQL查询语句并将结果填充到DataSet中,然后将DataSet中的数据绑定到DataGridView上。 #### 引用[.reference_title] - *1* [C#连接数据库以及获取数据库的数据](https://blog.csdn.net/m0_66658022/article/details/127265827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C#连接数据库](https://blog.csdn.net/m0_65579857/article/details/125011733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值