在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System; using System.Collections.Generic; using System.Linq; using System.Text; //操作SQL数据库必须引入此包 using System.Data.SqlClient; //使用DataSet类必须引入此包 using System.Data; namespace ConsoleApplication1 { class Program { private string sqlConnectionCommand = "server=localhost;database=testDB;uid=sa;pwd=sa";//"server=localhost;database=testDB;integrated security=SSPI";//Windows验证方式 private string sqlSelectTable = "select id,name from table1"; private string sqlDelCommand = "Delete From table1 Where id = 1"; private string sqlUpdateCommand = "update table1 set name = '99' Where id = 2"; static void Main(string[] args) { Program p1 = new Program(); p1.testDBsetFun(); } public void doSqlSelect() { SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand); //如果初始化构造函数不包含连接数据库信息,则可以用创建的对象的属性关联连接数据库信息 //SqlConnection sqlConnection = new SqlConnection(); //sqlConnection.ConnectionString = sqlConnectionCommand; SqlCommand sqlCommand = new SqlCommand(sqlSelectTable, sqlConnection);//建立一个接受SQL语句并可以执行返回结果的对象 //如果初始化时没包含要执行的SQL语句和关联的数据库连接则可通过创建的对象的属性来关联 //SqlCommand sqlCommand = new SqlCommand();//创建一个执行SQL语句类的对象 //sqlCommand.Connection = sqlConnection;//关联连接数据库对象 //sqlCommand.CommandText = sqlSelectTable1;//关联执行的SQL语句 //在执行SQL语句前必须把连接打开 sqlConnection.Open(); //如果执行非查询语句(更新,插入等)用SqlCommand类ExecuteNonQuery();方法来执行,返回一个int型 //sqlCommand.ExecuteNonQuery(); //执行查询语句用SqlCommand类ExecuteReader();方法来执行。用SqlDataReader类对象接收执行的结果便于沥遍 SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); //开始循环沥遍 while (sqlDataReader.Read()) { int id = (int)sqlDataReader["id"];//(int)sqlDataReader[0];//也可以根据查询结果列的序号0为第一列 string name = (string)sqlDataReader["name"];//(string)sqlDataReader["name"]; Console.WriteLine("ID = " + id + " , Name = " + name); } System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); sqlDataReader.Close(); sqlCommand.Dispose(); sqlConnection.Close(); } void testDBsetFun() { SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand); SqlCommand sqlCommand = new SqlCommand(sqlSelectTable, sqlConnection); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();//建立对虚拟表进行操作的对象 sqlDataAdapter.SelectCommand = sqlCommand;//把SqlDataAdapter关联一个拥有查询语句的sqlCommand对象 sqlConnection.Open(); DataSet dsDataSet = new DataSet();//创建虚拟表对象 sqlDataAdapter.Fill(dsDataSet, "Customers");//用SqlDataAdapter对象把刚关联的查询结果赋到虚拟表中,并赋一个指定表名"Customers"(任意起) sqlCommand.Dispose(); sqlConnection.Close(); dsDataSet.Tables["Customers"].Rows[0].Delete();//指明要在指定虚拟表中删除的索引行,表名也可换成指定表储存在dsDataSet中的索引值 dsDataSet.Tables["Customers"].AcceptChanges();//执行对指定虚拟表指定索引行删除的动作(提交执行自加载此 dsDataSet 或上次调用 AcceptChanges() 以来对其进行的所有更改。) sqlDataAdapter.Update(dsDataSet, "Customers");//调用Update方法,以dsDataSet中指定表的数据更新数据库对应表但是放在AcceptChanges()方法下则不执行 int a1 = dsDataSet.Tables[0].Rows.Count;//取得指定虚拟表的总行数 int a2 = dsDataSet.Tables["Customers"].Columns.Count;//取得指定虚拟表的总列数 int a3 = dsDataSet.Tables.Count;//取得指定虚拟表的总列数 string a4 = dsDataSet.Tables["Customers"].Columns[0].ToString();//取得指定虚拟表的索引为0列的列名(字段名) //取得指定虚拟表的指定索引行指定列的值 string val = dsDataSet.Tables["Customers"].Rows[1]["name"].ToString();//也可通过虚拟表中该列的索引来取值//string b = dsDataSet.Tables["Customers"].Rows[1][1].ToString(); Console.WriteLine("RowsCount = " + a1 + " , val = " + val); System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } } } |
请发表评论