从 DataSet 对象更新数据库
来源:互联网 发布:下载数字数软件 编辑:程序博客网 时间:2024/05/02 04:55
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
namespace IDataAdapter
{
///<summary>
/// AdHelper 的摘要说明。
///</summary>
public abstract class AdSqlHelper
{
///<summary>
/// Database connection strings.
///</summary>
///<remarks>
///
///</remarks>
public static string CONN = "";
///<summary>
///
///</summary>
///<remarks>
///
///</remarks>
///<param name="tableName"></param>
///<param name="dataRows"></param>
///<returns></returns>
public static DataTable FillSchema(string tableName, string selectCommandText)
{
SqlConnection objConn = new SqlConnection(CONN);
objConn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(selectCommandText, objConn);
DataSet ds = new DataSet(tableName);
DataTable dt = new DataTable();
try
{
adapter.FillSchema(ds, SchemaType.Source, tableName);
adapter.Fill(ds, tableName);
dt = ds.Tables[tableName];
return dt;
}
catch// (Exception e)
{
return null;
}
finally
{
objConn.Close();
dt.Dispose();
ds.Dispose();
adapter.Dispose();
}
}
///<summary>
///
///</summary>
///<remarks>
///
///</remarks>
///<param name="tableName"></param>
///<param name="dataRows"></param>
///<returns></returns>
public static bool Insert(string tableName, DataRowCollection dataRows)
{
SqlConnection objConn = new SqlConnection(CONN);
objConn.Open();
SqlDataAdapter adapter = new SqlDataAdapter("Select top 0 * From " + tableName + " ", objConn);
DataSet ds = new DataSet(tableName);
DataTable dt = new DataTable();
try
{
adapter.FillSchema(ds, SchemaType.Source, tableName);
adapter.Fill(ds, tableName);
dt = ds.Tables[tableName];
DataRow drCurrent;
foreach(DataRow dataRow in dataRows)
{
drCurrent = dt.NewRow();
foreach(DataColumn dataColumn in dataRow.Table.Columns)
{
drCurrent[dataColumn.ColumnName] = dataRow[dataColumn.ColumnName];
}
dt.Rows.Add(drCurrent);
}
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(adapter);
adapter.Update(ds, tableName);
return true;
}
catch// (Exception e)
{
return false;
}
finally
{
objConn.Close();
dt.Dispose();
ds.Dispose();
adapter.Dispose();
}
}
///<summary>
///
///</summary>
///<remarks>
///
///</remarks>
///<param name="tableName"></param>
///<param name="selectCommandText"></param>
///<param name="dataRows"></param>
///<returns></returns>
public static bool Update(string tableName, string selectCommandText, DataRowCollection dataRows)
{
SqlConnection objConn = new SqlConnection(CONN);
objConn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(selectCommandText, objConn);
DataSet ds = new DataSet(tableName);
DataTable dt = new DataTable();
try
{
adapter.FillSchema(ds, SchemaType.Source, tableName);
adapter.Fill(ds, tableName);
dt = ds.Tables[tableName];
DataRow drCurrent;
foreach(DataRow dataRow in dataRows)
{
DataColumn[] primaryKey = dataRow.Table.PrimaryKey;
object[] arrayKey = new object[primaryKey.Length];
for (int i = 0; i < arrayKey.Length; i++)
{
arrayKey[i] = dataRow[primaryKey[i].ColumnName];
}
drCurrent = dt.Rows.Find(arrayKey);
drCurrent.BeginEdit();
foreach(DataColumn dataColumn in dataRow.Table.Columns)
{
if(!dataColumn.ReadOnly)
{
drCurrent[dataColumn.ColumnName] = dataRow[dataColumn.ColumnName];
}
}
drCurrent.EndEdit();
}
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(adapter);
adapter.Update(ds, tableName);
return true;
}
catch//(Exception e)
{
return false;
}
finally
{
objConn.Close();
dt.Dispose();
ds.Dispose();
adapter.Dispose();
}
}
///<summary>
///
///</summary>
///<remarks>
///
///</remarks>
///<param name="tableName"></param>
///<param name="selectCommandText"></param>
///<param name="dataRows"></param>
///<returns></returns>
public static bool Delete(string tableName, string selectCommandText, DataRowCollection dataRows)
{
SqlConnection objConn = new SqlConnection(CONN);
objConn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(selectCommandText, objConn);
DataSet ds = new DataSet(tableName);
DataTable dt = new DataTable();
try
{
adapter.FillSchema(ds, SchemaType.Source, tableName);
adapter.Fill(ds, tableName);
dt = ds.Tables[tableName];
DataRow drCurrent;
foreach(DataRow dataRow in dataRows)
{
DataColumn[] primaryKey = dataRow.Table.PrimaryKey;
object[] arrayKey = new object[primaryKey.Length];
for (int i = 0; i < arrayKey.Length; i++)
{
arrayKey[i] = dataRow[primaryKey[i].ColumnName];
}
drCurrent = dt.Rows.Find(arrayKey);
drCurrent.Delete();
}
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(adapter);
adapter.Update(ds, tableName);
return true;
}
catch// (Exception e)
{
return false;
}
finally
{
objConn.Close();
dt.Dispose();
ds.Dispose();
adapter.Dispose();
}
}
}
}
#region Example
///// <summary>
///// Insert
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//private void button1_Click(object sender, System.EventArgs e)
//{
// DataTable dt = AdSqlHelper.FillSchema("AdapterSample", "SELECT top 0 * FROM AdapterSample");
// DataRowCollection drList = dt.Rows;
// DataRow dr ;
// dr = dt.NewRow();
// dr["p2"] = "1";
// dr["p3"] = "1111111";
// drList.Add(dr);
// dr = dt.NewRow();
// dr["p2"] = "2";
// dr["p3"] = "222222";
// drList.Add(dr);
// dr = dt.NewRow();
// dr["p2"] = "3";
// dr["p3"] = "333333";
// drList.Add(dr);
// AdSqlHelper.Insert("AdapterSample", drList);
// BindDataSource();
//}
///// <summary>
///// Update
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//private void button2_Click(object sender, System.EventArgs e)
//{
// DataTable dt = AdSqlHelper.FillSchema("AdapterSample", "SELECT top 0 * FROM AdapterSample");
// DataRowCollection drList = dt.Rows;
// DataRow dr ;
// dr = dt.NewRow();
// dr["p1"] = this.textBox1.Text;
// dr["p2"] = "1";
// dr["p3"] = "444444";
// drList.Add(dr);
// dr = dt.NewRow();
// dr["p1"] = this.textBox2.Text;
// dr["p2"] = "2";
// dr["p3"] = "555555";
// drList.Add(dr);
// dr = dt.NewRow();
// dr["p1"] = this.textBox3.Text;
// dr["p2"] = "3";
// dr["p3"] = "666666";
// drList.Add(dr);
// AdSqlHelper.Update("AdapterSample", "SELECT * FROM AdapterSample WHERE p2 = '1' or p2 = '2' or p2 = '3'" , drList);
// BindDataSource();
//}
///// <summary>
///// Delete
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//private void button3_Click(object sender, System.EventArgs e)
//{
// DataTable dt = AdSqlHelper.FillSchema("AdapterSample", "SELECT top 0 * FROM AdapterSample");
// DataRowCollection drList = dt.Rows;
// DataRow dr ;
// dr = dt.NewRow();
// dr["p1"] = this.textBox1.Text;
// dr["p2"] = "1";
// drList.Add(dr);
// dr = dt.NewRow();
// dr["p1"] = this.textBox2.Text;
// dr["p2"] = "2";
// drList.Add(dr);
// dr = dt.NewRow();
// dr["p1"] = this.textBox3.Text;
// dr["p2"] = "3";
// drList.Add(dr);
// AdSqlHelper.Delete("AdapterSample", "SELECT * FROM AdapterSample WHERE p2 = '1' or p2 = '2' or p2 = '3'" , drList);
// BindDataSource();
//}
//private void Form1_Load(object sender, System.EventArgs e)
//{
// BindDataSource();
//}
//private void BindDataSource()
//{
// this.dataGrid1.DataSource = SqlHelper.ExecuteDataSet("SELECT * FROM AdapterSample").Tables[0].DefaultView;
//}
#endregion
- 从 DataSet 对象更新数据库
- 如何使用 Visual C# .NET 从 DataSet 对象更新数据库
- 通过DataSet 对象更新数据库
- ADO.NET 快速入门(五):从 DataSet 更新数据库
- 利用DataSet更新数据库
- 通过DataSet更新数据库
- DataSet更新数据库
- DataSet 更新到数据库
- dataset更新数据库
- DataSet更新到数据库
- 用 DataSet 对象更新数据
- 用 DataSet 对象更新数据
- 用DataSet对象更新数据
- 用 DataSet 对象更新数据
- DataSet更新到数据库总结
- 通过DataSet更新、插入数据库
- DataSet更新到数据库总结
- DataSet更新到数据库总结
- OLE应用小记
- C++字符串完全指南 - Win32字符编码(一)
- C++字符串完全指南 - Win32字符编码(二)
- C++字符串完全指南(2) - 各种字符串类(一)
- const使用详解(转贴)
- 从 DataSet 对象更新数据库
- C++字符串完全指南(2) - 各种字符串类- CRT类
- 博客周刊“程序人生之江湖人物”
- C++字符串完全指南(2) - STL和ATL类
- 页面定时刷新功能实现
- Bluetooth(SDK)]蓝牙协议栈架构
- C++字符串完全指南(2) - MFC类
- 开学了及关于修电脑
- 了解ASP.NET底层架构