1. ADO.NET重要的类
  2. 在.NET访问MySql数据库时的几点经验!
    string connstr=Setting.Instance().GetConnectionString("MySql");
    MySqlConnection conn =new MySqlConnection(connstr);
    conn.Open();
    string query = "insert into myfirst(Id,Name) values(?Id,?Name)";
    MySqlCommand cmd = new MySqlCommand(query, conn);
    MySqlParameter para1=new MySqlParameter("?Id",DbType.Int32); //这里要注意必须要用?号
    MySqlParameter para2=new MySqlParameter("?Name",DbType.String);//这里要注意必须要用?号
    para1.Value=;
    para2.Value="ddd";
    cmd.Parameters.Add(para1);
    cmd.Parameters.Add(para2);
    cmd.ExecuteNonQuery();
  3. 设计应用程序时,要考虑应用程序所需功能的等级,以确定使用 DataSet 或者是 DataReader
    对于下列情况,要在应用程序中使用 DataReader:
    
    •
    不需要缓存数据。 •
    要处理的结果集太大,内存中放不下。 •
    一旦需要以只进、只读方式快速访问数据。
  4. 用多个表填充 DataSet,创建一个 DataTableMapping,把 "Customers1" 映射到 "Orders",并为其他后面的表创建其他的表映射。例如:
    //C#
    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection);
    da.TableMappings.Add("Customers1", "Orders");
    DataSet ds = new DataSet();
    da.Fill(ds, "Customers");
  5. ExecuteScalar 和 ExecuteNonQuery/ExecuteReader
  1. 如果想返回像 Count(*)、Sum(Price) 或 Avg(Quantity) 的结果那样的单值,可以使用 Command.ExecuteScalar。ExecuteScalar 返回第一行第一列的值,将结果集作为标量值返回。(特别适合聚合函数,它的返回值是OBJECT[无法知道返回的第一行第一列是什么值])
  2. 使用不返回行的 SQL 语句时,例如修改数据(例如INSERT、UPDATE 或 DELETE)或仅返回输出参数或返回值,请使用 ExecuteNonQuery。只能接受受影响的行数,如果没有操作就返回-1.
  3. ExecuteReader:返回一个SqlDataReader对象。这个对象可以只读只进读取对象,reader方法判断有没有下一行
  1. 把 Null 作为参数值传递

    对数据库的命令中,当把空值作为参数值发送时,不能使用 null。而需要使用 DBNull.Value。例如:

    //C#
    SqlParameter param = new SqlParameter("@Name", SqlDbType.NVarChar, );
    param.Value = DBNull.Value;
  2. 当执行事务时,显式地在开始事务之前打开连接,并在提交之后关闭连接。例如:

    //C#
    public void RunSqlTransaction(SqlDataAdapter da, SqlConnection myConnection, DataSet ds)
    {
    myConnection.Open();
    SqlTransaction myTrans = myConnection.BeginTransaction();
    myCommand.Transaction = myTrans; try
    {
    da.Update(ds);
    myCommand.Transaction.Commit();
    Console.WriteLine("Update successful.");
    }
    catch(Exception e)
    {
    try
    {
    myTrans.Rollback();
    }
    catch (SqlException ex)
    {
    if (myTrans.Connection != null)
    {
    Console.WriteLine("An exception of type " + ex.GetType() +
    " was encountered while attempting to roll back the transaction.");
    }
    } Console.WriteLine(e.ToString());
    Console.WriteLine("Update failed.");
    }
    myConnection.Close();
    }
  3. 在 C# 中使用 "Using" 语句

    对于 C# 程序员来说,确保始终关闭 Connection 和 DataReader 对象的一个方便的方法就是使用 using 语句。using 语句在离开自己的作用范围时,会自动调用被“使用”的对象的 Dispose。例如:

    //C#
    string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"; using (SqlConnection conn = new SqlConnection(connString))
    {
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers"; conn.Open(); using (SqlDataReader dr = cmd.ExecuteReader())
    {
    while (dr.Read())
    Console.WriteLine("{0}\t{1}", dr.GetString(), dr.GetString());
    }
    }
  4. 下边的代码是使用MySQL Connector Net 的例子。注意:他的Parameter的前缀是“?”而不是“@”。这个问题比较特殊。CoreLab里面的Parameter的前缀就是“@”.
    string connStr = String.Format("server={0};user id={1}; password={2}; database={3}; pooling=false;port=3308", "localhost", "root", "", "test");
    try
    {
    MySqlConnection myConn = new MySqlConnection(connStr);
    myConn.Open();
    MySqlCommand cmd = myConn.CreateCommand(); cmd.Parameters.Add("?DocName", MySqlDbType.VarChar, );
    cmd.Parameters[].Value = "test by code";
    cmd.Parameters[].SourceColumn = "DocName";
    cmd.CommandText = "update t_docs set DocName=?DocName where DocId=4";
    cmd.ExecuteNonQuery();
  5. 知识经验分享来源

ADO.NET学习的更多相关文章

  1. ADO.NET 学习笔记 入门教程

    本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=57&page=1&extra=#pid63 这是本人在 ...

  2. ADO.NET学习小结【1】正在更新...

    小弟正在学习ADO.net有误的地方还请大大们批评指出,小弟在此谢过了 一.ADO.net简述: 以前我们写程序尤其是写和数据库有关的应用程序时,你我都得要了解Microsoft ADO COM对象才 ...

  3. ADO.NET学习心得《一》

    大家好,我是代号六零一,很高兴又开始重启博客了,为了更好的加深自己的记忆和复习,今天开始坚持写写心得体会,刚开始学习ADO.NET的时候也是一脸懵逼的,代码只有动手敲打才会知道其实并不难,只要多敲几遍 ...

  4. ADO.NET学习系列(四)---窗体版的登录小程序

    1.需求分析:做一个登录的小程序,基于Winform的窗体小程序.基本要求:登录成功:弹框显示登录成功,登录失败就弹框显示失败. 扩展功能:登录次数超过3次,就”锁定“用户,提示登录错误次数过多,不能 ...

  5. ADO.NET学习系列(二)

    这次我使用ADO.NET来插入一条数据,到数据库中.主用到存储过程.我不想每次都是用SQL文本的形式了,那样始终没有进步--- 下面首先,我把我这次练习要用到的数据库脚本,贴出来: USE maste ...

  6. ADO.NET学习系列(一)

    一.ADO.NET基础 程序和数据库交互,要通过ADO.NET进行:通过ADO.NET就能在数据库中执行SQL了.ADO.NET中提供了对不同数据库的统一操作接口(ODBC).另外还有一种操作数据库的 ...

  7. ADO.NET学习系列(三)----做一个登录案例

    总体思路.根据用户输入的用户名和密码,来判断,和数据库里面存的是不是一样,如果一样就表明登录成功,否则就登录失败. 方案一: 1.select* from 表名 where username=&quo ...

  8. ado.net 学习小结

    连接数据源 Connection对象.Connection对象处于最顶层,是所有数据访问请求的关口.我们通过其暴露的属性进行配置.下面是一段连接字符串的示例. if (string.IsNullOrE ...

  9. 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类

    using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...

随机推荐

  1. Android性能分析之TraceView的使用

    TraceView简介 TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析. TraceView是图形化的工具,最终它会产 ...

  2. String高效编程优化(Java)

    1, substring截取超大字符串可能造成的“内存泄漏” 2,+ 操作符的优化和局限 3,StringBuilder和StringBuffer 4,split和StringTokenizer做简单 ...

  3. Oracle客户端配置

    1.  打开开发生产数据库系统,点击下载Oracle_12C_Client32,并且解压缩. 2.  找到文件下的setup.exe文件,并且执行. 3.  等待数秒,在如下界面中选择第二项,管理员, ...

  4. PHP interface(接口)的示例代码

    <?php class DocumentStore { protected $data = []; public function addDocument(Documentable $docum ...

  5. Unity仪表盘显示UGUI制作小心得

    最近在做设备仪表参数参数显示,由于模型摆放位置经常修改,加之要求不能在模型的下面添加东西,显示界面的位置也不得不跟着修改,一来二去就烦了,想了解决办法,现在总结如下: 1.仍然在模型下面新建Panel ...

  6. msys2安装

    最近在研究编译linux下的软件到windows环境中. 发现了一个比cygwin更好玩的东西,那就是msys2 其实之前也在试玩mingw和mingw64,2016-08-12,当时的最新版本,mi ...

  7. Linux下查看/管理当前登录用户及用户操作历史记录

    转载自: http://www.cnblogs.com/gaojun/archive/2013/10/24/3385885.html 一.查看及管理当前登录用户 1.使用w命令查看登录用户正在使用的进 ...

  8. kali4.0 更新源出错

    一.前情提要: OS:kail 4.0 64bit 二.出错描述如下: 无法从服务器下载对应版本的软件,我查看了服务器上的版本与我要下载的不一致,因此肯定无法找到对应的软件版本 三.对策: 换源:vi ...

  9. SpringMVC生成Excel下载

    SpringMVC controller里的方法: @RequestMapping(value="/notify/download",produces = {"appli ...

  10. 启动windows bat文件出现错误,直接关闭

    如果执行运行run.bat,提示错误直接退出后,可以直接使用cmd命令进入当前目录,运行,会显示错误信息.