using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace AGVSystem
{
///
/// 数据库操作
///
public class ClsDBConn_sql
{
///
/// 获取CPU运行的时间
///
///
[DllImport("kernel32")]
static extern uint GetTickCount();
private System.Data.DataSet dt = new System.Data.DataSet();
private SqlConnection sqlconn = new SqlConnection(Cls.Param.connectStr);
private SqlDataAdapter sqladapter = null;
private SqlCommandBuilder sqlcommandb = null;
private SqlCommandBuilder sqlcommandb_ds = null;
private BindingSource bindsource = new BindingSource();
private SqlCommand command = null;
///
/// 关闭连接
///
public void ConnClosed()
{
try
{
if (sqlconn != null)
{
if (sqlconn.State == ConnectionState.Open)
{
sqlconn.Close();
}
}
}
catch
{
}
}
///
/// 连接数据库返回dataset
///
/// SQL语句
///
public System.Data.DataSet connDt(string str)
{
try
{
if (sqlconn.State != ConnectionState.Open)
sqlconn.Open();
sqladapter = new SqlDataAdapter(str, sqlconn);
sqlcommandb = new SqlCommandBuilder(sqladapter);
if (dt.Tables.Count > 0)
dt.Tables.Clear();
sqladapter.Fill(dt);
return dt;
}
catch (Exception err)
{
MessageBox.Show("SQL:" + str + " , \r\n" + err.Message + " \r\n FunctionName:connDt", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
///
/// 返回可更新的dataset
///
/// SQL语句
///
public System.Data.DataSet dtEdit(string str)
{
try
{
sqladapter = new SqlDataAdapter(str, sqlconn);
sqlcommandb_ds = new SqlCommandBuilder(sqladapter);
if (dt.Tables.Count > 0)
dt.Tables.Clear();
sqladapter.Fill(dt);
return dt;
}
catch (Exception err)
{
MessageBox.Show("SQL:" + str + " , \r\n" + err.Message + " \r\n FunctionName:dtEdit", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
///
/// 更新Dataset数据到数据库
///
///
///
///
public bool dtCommit(System.Data.DataSet ds )
{
try
{
//Int64 t1 = GetTickCount();
int DS = ds.Tables[0].Rows.Count;
sqladapter.Update(ds);
//Int64 t2 = GetTickCount() - t1;
//if (t2 > 2)
// MessageBox.Show("update time:"+t2.ToString());
}
catch
{
//MessageBox.Show(err.Message+"EventName:dtCommit");
return false;
}
return true;
}
///
/// 数据库连接到datagridview
///
/// sql语句
/// datagridview控件名称
public bool connDGV(string str, DataGridView dgv)
{
try
{
if (sqlconn.State == ConnectionState.Open) sqlconn.Close();
sqladapter = new SqlDataAdapter(str, sqlconn);
if (dt.Tables.Count > 0)
dt.Tables.Clear();
sqladapter.Fill(dt);
if (dt.Tables.Count > 0)
dgv.DataSource = dt.Tables[0].Copy();
return true;
}
catch (Exception err)
{
MessageBox.Show("SQL:" + str + " , \r\n" + err.Message + " \r\n FunctionName:connDGV", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
///
/// 数据库连接到datagridview,并可通过datagridview修改数据库
///
/// sql语句
/// datagridview控件名称
public bool connDgvEdit(string str, DataGridView dgv)
{
try
{
if (sqlconn.State == ConnectionState.Open) sqlconn.Close();
sqladapter = new SqlDataAdapter(str, sqlconn);
if (dt.Tables.Count > 0)
dt.Tables.Clear();
sqladapter.Fill(dt);
sqlcommandb = new SqlCommandBuilder(sqladapter);
bindsource.DataSource = dt.Tables[0];
dgv.DataSource = dt.Tables[0];
dgv.DataSource = bindsource;
return true;
}
catch (Exception err)
{
MessageBox.Show("SQL:" + str + " , \r\n" + err.Message + " \r\n FunctionName:connDGVEdit", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
///
/// 提交datagridview的数据
///
/// datagridview控件名称
public bool DgvCommit(DataGridView dgv)
{
try
{
dgv.EndEdit();
bindsource.EndEdit();
sqladapter.Update(dt.Tables[0]);
return true;
}
catch (Exception err)
{
MessageBox.Show(err.Message + " \r\n FunctionName:DgvCommit", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
///
/// 直接执行SQL语句
///
///
///
public string Command(string sqlstr)
{
try
{
int count = 0;
if (sqlconn.State != ConnectionState.Open) sqlconn.Open();
command = new SqlCommand(sqlstr, sqlconn);
count = command.ExecuteNonQuery();
//sqlconn.Close();
return count.ToString();
}
catch (Exception err)
{
return "SQL:" + sqlstr + " , \r\n" + err.Message + " \r\n FunctionName:Command";
}
}
public bool DtCommand(string Sqlstr, string[,] insertValue)
{
try
{
if (sqlconn.State == ConnectionState.Open) sqlconn.Close();
sqladapter = new SqlDataAdapter(Sqlstr, sqlconn);
if (dt.Tables.Count > 0)
dt.Tables.Clear();
sqlcommandb = new SqlCommandBuilder(sqladapter);
sqladapter.Fill(dt);
for (int rw = 0; rw < insertValue.GetLength(0); rw++)
{
System.Data.DataRow drow = dt.Tables[0].NewRow();
for (int cl = 0; cl < insertValue.GetLength(1); cl++)
{
drow[cl] = insertValue[rw, cl];
}
dt.Tables[0].Rows.Add(drow);
}
sqladapter.Update(dt);
sqlconn.Close();
return true;
}
catch (Exception err)
{
MessageBox.Show(err.Message, "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
public void gg()
{
bindsource.AddNew();
bindsource.MoveLast();
}
}
}