C# ADO.NET数据库操作

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.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Data;

namespace Wpf
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    /// 

    public partial class MainWindow : Window
    {
        //对象和变量声明
        //Connection 对象和 Command对象
        private SqlConnection objSqlConnection;
        private SqlCommand objSqlCommand;
        //类变量
        private string insCmd;
        private string modCmd;
        private string delCmd;
        private string selCmd;
        public MainWindow()
        {
            InitializeComponent();
        }
        //在load事件中,进行连接
        private void frmFlight_Loaded(object sender, RoutedEventArgs e)
        {
            //初始化connecton对象
            objSqlConnection = new SqlConnection("server = QH-20150109JHTM; database =FirstDataBase; uid=sa;pwd=123456");
            if (objSqlConnection != null)
            {
                //MessageBox.Show("Connection Success");
            }
            //将座位数量添加到组合框中
            this.comboBoxSeats.Items.Clear();
            this.comboBoxSeats.Items.Add("100");
            this.comboBoxSeats.Items.Add("150");
            this.comboBoxSeats.Items.Add("200");
            //this.buttonModify.IsEnabled = false;
            //this.buttonDelete.IsEnabled = false;
        }

         //添加记录代码
        private void buttonAdd_Click(object sender, RoutedEventArgs e)
        {

            if (this.comboBoxSeats.SelectedIndex == -1)
            {
                MessageBox.Show("请选择座位数量");
                return;
            }
            //插入命令
            insCmd = "insert into FlightDetails values ("+this.textBoxFlight.Text+","+this.textBoxAirline.Text
                +","+this.comboBoxSeats.SelectedItem.ToString()+","+this.textBoxDestination.Text+","+this.textBoxSource.Text+
                ","+this.textBoxDeparture.Text+","+this.textBoxArrival.Text+")";
            objSqlCommand = new SqlCommand();
            objSqlCommand.CommandText = insCmd;
            objSqlCommand.Connection = objSqlConnection;

            try
            {
                //打卡连接
                objSqlConnection.Open();
                //执行插入语句
                if (objSqlCommand.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show("已经成功添加记录");
                }
                //启用和禁用按钮
                //this.buttonModify.IsEnabled = true;
                //this.buttonDelete.IsEnabled = true;
                //this.buttonAdd.IsEnabled = false;

            }
            catch (SqlException sqle)
            {
                //关闭连接
                MessageBox.Show(sqle.Message);
            }
            finally {

                objSqlConnection.Close();
            }
        }

        private void buttonDelete_Click(object sender, RoutedEventArgs e)
        {

            delCmd = "delete from FlightDetails where FlightCode like '" + this.textBoxFlight.Text + "'";
            MessageBox.Show(delCmd);
            objSqlCommand = new SqlCommand(delCmd, objSqlConnection);
            selCmd = "select Count(*) from FlightDetails";
            SqlCommand selCommand = new SqlCommand(selCmd,objSqlConnection);

            try
            {
                objSqlConnection.Open();
                string recordCount=selCommand.ExecuteScalar().ToString();
                MessageBox.Show("FlightDetails表中记录的数目是: " + recordCount);
                MessageBoxResult dialogResult=MessageBox.Show("您确定删除记录吗?","确认",MessageBoxButton.YesNo);
                if (dialogResult == MessageBoxResult.Yes) {

                    if (objSqlCommand.ExecuteNonQuery() == 1) {
                        MessageBox.Show("已经删除记录");
                        this.buttonModify.IsEnabled = false;
                    }
                }

            }catch(Exception ehere)
            {
                MessageBox.Show(ehere.Message);
            }
            finally
            {
                objSqlConnection.Close();
            }
        }

        private void buttonSelect_Click(object sender, RoutedEventArgs e)
        {
            selCmd = "select * from FlightDetails where FlightCode like '" + this.textBoxFlight.Text + "'";
            MessageBox.Show(selCmd);
            try
            {
                objSqlConnection.Open();
                SqlCommand selFlightCommand = new SqlCommand(selCmd, objSqlConnection);
                SqlDataReader flightMessage = selFlightCommand.ExecuteReader();
                string columnName = null;
                //结果集列的名称
                for (int i = 0; i < flightMessage.FieldCount; ++i) {
                    columnName += flightMessage.GetName(i)+" ";
                }
                MessageBox.Show(columnName);
                //Read()方法负责前进到下一条记录
                while (flightMessage.Read()) {

                    this.textBoxAirline.Text = flightMessage[1].ToString();
                    this.comboBoxSeats.Text = flightMessage[2].ToString();
                    this.textBoxDestination.Text = flightMessage[3].ToString();
                    this.textBoxSource.Text = flightMessage[4].ToString();

                    this.textBoxDeparture.Text = flightMessage[5].ToString();
                    this.textBoxArrival.Text = flightMessage[6].ToString();

                }
                //关闭DataReader对象
                flightMessage.Close();
            }
            catch (SqlException sqle)
            {
                MessageBox.Show(sqle.Message);
            }
            finally
            {

                objSqlConnection.Close();
            }
        }
        //通过DataSet访问数据库数据源
        private void buttonDataSet_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (this.textBoxFlight.Text == "") {
                    MessageBox.Show("航班号不能为空");
                    return;
                }
                objSqlConnection.Open();
                //string selString="select * from FlightDetails where  FlightCode like'"+this.textBoxFlight.Text+"'";
                string selString="select * from FlightDetails";
                SqlCommand myCommand = new SqlCommand(selString, objSqlConnection);
                SqlDataAdapter myAdaptor = new SqlDataAdapter();
                myAdaptor.SelectCommand = myCommand;
                DataSet myDataSet = new DataSet();
                myAdaptor.Fill(myDataSet);

                DataTable myTable = myDataSet.Tables[0];
                //MessageBox.Show(myDataSet.Tables[0].TableName);
                string columnName = null;
                foreach (DataColumn myColumn in myTable.Columns) {
                    columnName += myColumn.ColumnName+" ";
                }
                MessageBox.Show(columnName);
                string dataMessage = null;
                //第一个循环用于读取DataTable中的每一行,第二个循环用于输出行中的每一个字段的值
                foreach (DataRow myRow in myTable.Rows) {
                    foreach (DataColumn myColumn in myTable.Columns) {
                        dataMessage += myRow[myColumn] + " ";
                    }
                }
                MessageBox.Show(dataMessage);

            }
            catch (SqlException sqle)
            {
                MessageBox.Show(sqle.Message);
            }
            finally {
                objSqlConnection.Close();
            }
        }

    }
}

时间: 2024-10-08 19:17:18

C# ADO.NET数据库操作的相关文章

c++通过ADO对数据库操作

C/C++ 通过ADO对数据库操作 实例:c++ 通过ADO调用存储过程写入数据到sql server 1.在.h头文件导入微软提供的ado的动态库 #pragma warning(disable:4146) #import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF

MFC中使用ADO进行数据库操作

参考FROM:http://hi.baidu.com/sunkanghome/item/e1fda510b3186359f1090ee2 数据库与数据库编程: 当前各种主流数据库有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等. 数据库编程是对数据库的创建.读写等一列的操作.数据库编程分

ADO.NET 数据库操作类

操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类   一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using System.Data.SqlClient; 例: public class DBConnect { private static string connstring = "server=.;database=mydb;user=sa;pwd=123"; public static Sql

VB语言使用ADO连接、操作SQLServer数据库教程

VB语言使用ADO连接.操作SQLServer数据库教程 这篇文章主要介绍了VB语言使用ADO连接.操作SQLServer数据库教程,本文讲解详细.代码中有大量注释,是非常好的一篇教程,需要的朋友可以参考下 几年前学过的VB几乎忘光了,这几天复习了下.VB连接ADO数据库并不是非常难. 连接第一步(要仔细看) 对于小白来讲,这里的教程最详细,连接ADO数据库第一步,要添加什么部件呢?全称是Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件. 在Micr

ADO.NET之断开数据连接的数据库操作

在ADO.NET对数据库操作时有两种方式一种时与数据库实时连接,第二种时断开连接的操作. 断开连接的操作使用SqlDataAdapter来实现,我们要把数据库中的表数据加载到winform中的datagridview控件中时,使用断开连接来实现,以下是代码实现: string server = "Data Source=.;Initial Catalog=MyDataBase;Integrated Security=True"; string sql = "select *f

MFC ADO数据库操作

MFC ADO数据库操作 - 延陵小明 - CSDN博客 http://blog.csdn.net/guoming0000/article/details/7280070/ 内容比较乱,作为草稿,对现有的ado数据库操作函数方法进行汇总. 小函数m_pRecordset->RecordCount//取得记录数量 全局变量#import "msado15.dll" no_namespace rename("EOF","adoEOF")rena

数据库操作(ADO)

QTP工具本身自带有数据查询和验证功能,但是使用的人会感觉这个功能使用起来比较麻烦,灵活性和复用性较低,于是我们选择了用脚本调用ADO组件实现数据库的操作,现总结下工作中用到的数据库操作,代码如下: 一.最常用的数据库取值操作 ‘获取数据库查询语句 sql="select * from user where name='wangwei'" '获取数据库连接字符 strconn="Driver={microsoft odbc for oracle};server=ORACS17

ado.net的简单数据库操作(一)

摘要:接下来的几篇博客将要讲到如何使用ado.net实现简单的数据库操作,包括增删改等内容.首先会介绍基础的数据库操作,然后以一个实例来进行讲解,这个实例会把一个数据表读取到winform上,然后在winform上有一些按钮和文本框,通过这些实现对数据库里的内容的增删改的操作.我个人比较菜,因此记录计较详细,说话也啰嗦,因此可能会写几篇才能介绍完. 本人属菜鸟一枚,刚接触.net两个星期,写的东西也是照搬自己看的视频里老师教的东西,其目的主要是为了巩固自己学习,当然,如果正好能帮助到和我一样的刚

一种利用ADO连接池操作MySQL的解决方案(VC++)

VC++连接MySQL数据库 常用的方式有三种:ADO.mysql++,mysql API ; 本文只讲述ADO的连接方式. 为什么要使用连接池? 对于简单的数据库应用,完全可以先创建一个常连接(此连接永远不关闭,直接数进程退出),但是这样做至少会引起两个问题:(1)资源竞争,多个数据库请求操作不能同时进行,后一请求必须要等到前一请求完成后才能进行:(2)多线程情况下容易出现混乱,甚至出现资源异常释放.还有一种方法,就是使用数据库时创建连接,使用完后关闭连接回收资源.这种方式在数据库操作频繁的情