Files

259 lines
8.5 KiB
C#
Raw Permalink Normal View History

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
{
/// <summary>
/// 数据库操作
/// </summary>
public class ClsDBConn_sql
{
/// <summary>
/// 获取CPU运行的时间
/// </summary>
/// <returns></returns>
[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;
/// <summary>
/// 关闭连接
/// </summary>
public void ConnClosed()
{
try
{
if (sqlconn != null)
{
if (sqlconn.State == ConnectionState.Open)
{
sqlconn.Close();
}
}
}
catch
{
}
}
/// <summary>
/// 连接数据库返回dataset
/// </summary>
/// <param name="str"> SQL语句</param>
/// <returns></returns>
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 FunctionNameconnDt", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
/// <summary>
/// 返回可更新的dataset
/// </summary>
/// <param name="str"> SQL语句</param>
/// <returns></returns>
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 FunctionNamedtEdit", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
/// <summary>
/// 更新Dataset数据到数据库
/// </summary>
/// <param name="ds"></param>
/// <param name="adapter"></param>
/// <returns></returns>
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+"EventNamedtCommit");
return false;
}
return true;
}
/// <summary>
/// 数据库连接到datagridview
/// </summary>
/// <param name="str">sql语句</param>
/// <param name="dataGridView">datagridview控件名称</param>
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 FunctionNameconnDGV", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
/// <summary>
/// 数据库连接到datagridview,并可通过datagridview修改数据库
/// </summary>
/// <param name="str">sql语句</param>
/// <param name="dataGridView">datagridview控件名称</param>
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 FunctionNameconnDGVEdit", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
/// <summary>
/// 提交datagridview的数据
/// </summary>
/// <param name="dataGridView">datagridview控件名称</param>
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 FunctionNameDgvCommit", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="sqlstr"></param>
/// <returns></returns>
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 FunctionNameCommand";
}
}
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();
}
}
}