ado.net封装类

1、MainWindow.xaml 面板

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Test"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525" WindowState="Maximized">
    <Grid >
        <DockPanel>
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="文件">
                    <MenuItem Header="打开"></MenuItem>
                </MenuItem>
                <MenuItem Header="编辑">
                    <MenuItem Header="复制"></MenuItem>
                </MenuItem>
                <MenuItem x:Name="About" Header="关于我们" Click="About_Click"></MenuItem>
                <MenuItem x:Name="Update" Header="更新" Click="Update_Click"></MenuItem>
                <MenuItem x:Name="Chaxun" Header="查询1" Click="Chaxun_Click"></MenuItem>
                <MenuItem x:Name="Chaxun2" Header="查询2" Click="Chaxun2_Click"></MenuItem>
            </Menu>
            <TextBox DockPanel.Dock="Left"></TextBox>
            <TextBox DockPanel.Dock="Right"></TextBox>
            <TextBox DockPanel.Dock="Bottom"></TextBox>
            <Button Content="左" DockPanel.Dock="Left"></Button>
            <Button Content="右" DockPanel.Dock="Right"></Button>
        </DockPanel>
    </Grid>

</Window>

2、MainWindow.xaml.cs 事件

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Collections;
using System.Data;

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

        private void About_Click(object sender, RoutedEventArgs e)
        {
            //AboutWindow abw = new AboutWindow();
            //abw.ShowDialog();
            SqlHelper sh = new SqlHelper();
            SqlParameter[] pars = new SqlParameter[] {
                new SqlParameter("@name", "赵六"),
                new SqlParameter("@id", "1")
            };

            string sql = "UPDATE user1 SET [email protected] WHERE [email protected]";
            int count = sh.ExcuteSQLReturnInt(sql, pars);
            MessageBox.Show("更新了 "+count+" 条数据");
        }

        private void Update_Click(object sender, RoutedEventArgs e)
        {
            //连接字符串(可以在左边服务器资源管理器里自动生成):
            //Data source=服务器名(IP地址)\实例名;
            //Initial Catalog=数据库名;
            //Integrated Security=True    集成身份验证
            //User ID=xxx;Password=xxx    用户名密码登陆
            string constr = @"Data source=LENOVO-PC;Initial Catalog=test;Integrated Security=False;User ID=sa;Password=root";

            using (SqlConnection con = new SqlConnection(constr))
            {

               string sql = "UPDATE user1 SET name=‘wwwww‘ WHERE id=1 ";

                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    if (con.State == System.Data.ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    int r = cmd.ExecuteNonQuery();
                    con.Close();
                    MessageBox.Show("已成功修改"+r+"条语句");
                }
            }
        }

        private void Chaxun_Click(object sender, RoutedEventArgs e)
        {
            SqlHelper sh = new SqlHelper();
            SqlParameter[] pars = new SqlParameter[] {
                new SqlParameter("@pwd", "bbbbbb")
            };

            string sql = "SELECT * FROM user1 WHERE [email protected]";
            ArrayList DataList = sh.DataList(sql, pars);
            foreach(ArrayList list in DataList)
            {
                foreach (Object obj in list)
                {
                    MessageBox.Show(obj.ToString());
                }
            }
        }

        private void Chaxun2_Click(object sender,RoutedEventArgs e)
        {
            SqlHelper sh = new SqlHelper();
            SqlParameter[] pars = new SqlParameter[]
            {
                new SqlParameter("@pwd","bbbbbb")
            };
            string sql = "SELECT * FROM user1 WHERE [email protected]";
            ArrayList list = sh.DataSet(sql,pars);
            foreach(DataRow rows in list)
            {
                MessageBox.Show(rows["name"].ToString());
            }
        }
    }
}

3、SqlHelper.cs  ado.net封装类

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Collections;
using System.Data;

namespace Test
{
    //操作数据库方法
    class SqlHelper
    {
        public string MyConnString
        {
            get
            {
                return @"Data source=LENOVO-PC;Initial Catalog=test;Integrated Security=False;User ID=sa;Password=root";
            }
        }

        //执行insert,update,delete命令
        //返回受影响的行数
        public int ExcuteSQLReturnInt(string sql,SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection(MyConnString);
            try
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                if (conn.State == System.Data.ConnectionState.Closed || conn.State == System.Data.ConnectionState.Broken)
                {
                    conn.Open();
                }
                if(pars!=null && pars.Length > 0)
                {
                    foreach (SqlParameter p in pars)
                    {
                        cmd.Parameters.Add(p);
                    }
                }

                int count = cmd.ExecuteNonQuery();
                return count;
            }
            catch (Exception ex)
            {
                return 0;
            }
            finally
            {
                conn.Close();
            }
        }

        //查询select
        public ArrayList DataList(string sql,SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection(MyConnString);
            SqlCommand cmd = new SqlCommand(sql,conn);

            if (conn.State == System.Data.ConnectionState.Closed || conn.State == System.Data.ConnectionState.Broken)
            {
                conn.Open();
            }

            if (pars != null && pars.Length > 0)
            {
                foreach (SqlParameter p in pars)
                {
                    cmd.Parameters.Add(p);
                }
            }

            SqlDataReader reader = cmd.ExecuteReader();
            ArrayList list = new ArrayList();
            while (reader.Read())
            {
                ArrayList list1 = new ArrayList();
                for (int i = 0; i< reader.FieldCount; i++)
                {
                    list1.Add(reader[i]);
                }
                list.Add(list1);
            }
            conn.Close();
            return list;
        }

        //查询select
        public ArrayList DataSet(string sql,SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection(MyConnString);
            SqlCommand cmd = new SqlCommand(sql,conn);
            if (conn.State == System.Data.ConnectionState.Closed || conn.State == System.Data.ConnectionState.Broken)
            {
                conn.Open();
            }

            if (pars != null && pars.Length > 0)
            {
                foreach (SqlParameter p in pars)
                {
                    cmd.Parameters.Add(p);
                }
            }

            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataSet dataset = new DataSet();
            adapter.Fill(dataset);

            DataTable table = dataset.Tables[0];
            DataRowCollection rows = table.Rows;
            ArrayList list = new ArrayList();
            for(int i = 0; i < rows.Count; i++)
            {
                DataRow row = rows[i];
                list.Add(row);
            }
            return list;
        }

    }
}
时间: 2024-10-26 20:15:48

ado.net封装类的相关文章

MFC总结

一MFC 的概念和作用 1 什么是MFC? 全称Microsoft Foundation Class Library 我们称之为 微软基础类库,封装了绝大部分WIN32 api 函数,还封装 了程序流程. 1.1 硬盘存在形式就是一个库(静态库/动态库) 1.2 原理上还是一个程序框架 2 为什么使用MFC? 基于框架编程,提供工作效率,减少开发周期,节约开发 成本. 二几个重要头文件 afx.h - MFC 绝大部分类的声明 afxwin.h - 包含了afx.h 和windows.h afx

存储过程不返回记录集导致ADO程序出错

HRESULT _hr = get_adoEOF(&_result); IsEOF()函数如下:其中ADOCG::_RecordsetPtr m_pRecordset; BOOL IsEOF()       {return m_pRecordset->adoEOF == VARIANT_TRUE;}; m_pRecordset->adoEOF 将执行下面的函数(见msado15.tli) 1    inline VARIANT_BOOL Recordset15::GetadoEOF (

VC++下封装ADO类以及使用方法

操作系统:windows 7软件环境:visual studio 2008 .Microsoft SQL 2005本次目的:介绍一个已经封装的ADO类,简单说明怎么导入使用 首先声明一下,这个封装的ADO类是在[vc知识库 ]下载的,因为最近在数据库课程设计,所以对vc++下使用ADO连接数据库不是很了解,故若是本文有错误的地方的,请不吝指出.具体的ADO类各个封装功能请进入[原文地址 ]查看.在此仅介绍使用此ADO封装类的入门,如连接数据库,显示记录等.一个测试例子如下: 使用步骤:1.先从[

ADO.NET之常用功能的封装

一.连接字符串(使用配置文件) 添加对 System.Configuration 的引用,并且在封装类中引入该namespace /// <summary> /// 功能:读取配置文件中的连接字符串 /// 返回值类型:string /// </summary> /// <param name="conName">参数:配置文件中的连接字符串名称</param> /// <returns>返回值:string 连接字符串<

数据访问-----ADO.NET 小结和练习

ADO.NET两个命名空间,三个类.一.两个命名空间:using System.Data;using System.Data.SqlClient; 二.三个类:SqlConnection    SqlCommand    SqlDataReader (一)SqlConnection链接类1.构造链接字符串的写法:server=服务器IP或服务器名;database=数据库名;uid=用户名;pwd=密码server=.;database=mydb;uid=sa;pwd=123Data Sourc

Silverlight 2 (beta1)数据操作(3)——使用ADO.NET Data Service (Astoria)进行数据CRUD操作

目录 导言 软件需求 在SQL 2005中创建数据库 在Visual Studio 2008中创建Silverlight工程和ADO.NET Data Service 创建一个XMLHttpRequestWrapper类 在Silverlight中使用Astoria进行CRUD操作 导言 Silverlight 2支持JSON.Web Service.WCF以及Sockets等新特性对数据CRUD操作,这个系列用实例结合数据库一步一步的图文描述来学习一下Silverlight 2 beta 1中

MFC,ADO方式实现数据库操作

参考: MSDN数据访问编程 (MFC/ATL): https://msdn.microsoft.com/zh-cn/library/kd4ck1tt.aspx?f=255&MSPPError=-2147217396 ado方式操作数据库封装类的使用范例: http://download.csdn.net/detail/xianglitian/2383423 使用ADO封装类的数据库程序开发实例: http://wenku.baidu.com/link?url=A3g4_Ucz1RuijQMZ8

封装ADO库之MFC应用

Microsoft Activex Data Objects(ADO)支持用于建立基于客户端/服务器和web的应用程序开发的主要功能.其主要优点是易于使用.高速度.低内存支出和占用磁盘空间较少. 本次封装的CadoInterface类仅针对MFC的使用,目的是优化对ADO的操作,避免频繁写try catch(...)以及在连库.开表.写数据.读数据等过程中一些重复性的工作.该类仅对一些常用的操作进行封装,用户可以根据需要进行修改和扩展. 封装类主要包括:基本操作.增值操作.支持算法与支持结构.基

ODBC、ADO

一.VC访问数据库的技术 1.ODBC --Open Database Connectivity微软开放式数据互联,一组用于访问和操作数据库的API,可以访问不同的数据库产品,但只能访问关系型数据库.MFC将这组API函数封装成ODBC类,使用前需要将不同的数据库设置为ODBC数据源. 2.DAO --基于ODBC的,目前已经被淘汰 3.OLE DB  --基于COM技术的,提供了一组用于访问和操作数据库的接口.既可以访问关系型又可以访问非关系型数据,性能也有了很大提高.缺点是学习难度大,对程序