操作数据库的几个主要的函数如下:using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.IO;
namespace LightCtrlApp
{
class SqlConn : IDisposable
{
#region 代码中用到的变量
SqlDataAdapter G_Da; //声明数据适配器对象
DataSet G_Ds; //声明数据集对象
SqlCommand G_Com;
SqlConnection G_Con; //声明链接对象
#endregion #region 构造函数及释放连接
/// <summary>
/// 构造函数
/// </summary>
public SqlConn()
{ }
//释放连接
public void Dispose()
{
//强制对零代到指定代进行垃圾回收
GC.Collect();
}
#endregion
#region 连接数据库
/// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public SqlConnection GetCon()
{
try
{
string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "参数配置.xml");
if (File.Exists(configFile))
{
XmlOperator xmlOperator = new XmlOperator(configFile);
int size = xmlOperator.GetXmlReader().Length;
string[] getDataBaseInfo = new string[size]; for (int i = 0; i < size; i++)
{
getDataBaseInfo[i] = xmlOperator.GetXmlReader()[i];
}
string G_Str_ConnectionString = "Server=" + getDataBaseInfo[0];
G_Str_ConnectionString += ";user id=" + getDataBaseInfo[1];
G_Str_ConnectionString += ";password=" + getDataBaseInfo[2];
G_Str_ConnectionString += ";initial catalog=" + getDataBaseInfo[3] + ";Connect Timeout=20"; G_Con = new SqlConnection(G_Str_ConnectionString);
G_Con.Open();
}
else
{
MessageBox.Show("不存在配置文件,请添加!");
Application.Exit();
}
}
catch (Exception ex)
{
MessageBox.Show("数据库打开失败,错误原因:" + ex.Message.ToString());
}
return G_Con;
} /// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdtxt">要执行的SQL语句</param>
/// <returns></returns>
public bool GetExecute(string cmdtxt)
{
G_Com = new SqlCommand(cmdtxt, GetCon());
try
{
G_Com.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return false;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} #endregion #region 返回数据
/// <summary>
/// 返回数据集类型
/// </summary>
/// <param name="cmdtxt">需要查询的SQL语句</param>
/// <returns></returns>
public DataSet GetDs(string cmdtxt, string table)
{
try
{
G_Da = new SqlDataAdapter(cmdtxt, GetCon());
G_Ds = new DataSet();
G_Da.Fill(G_Ds, table);
return G_Ds;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} /// <summary>
/// 返回数据表
/// </summary>
/// <param name="cmdtxt"></param>
/// <param name="tablename"></param>
/// <returns></returns>
public DataTable GetTable(string cmdtxt, string tablename)
{
DataTable P_tbl; //声明一个DataTable对象
try
{
G_Da = new SqlDataAdapter(cmdtxt, tablename);
P_tbl = new DataTable(tablename);
G_Da.Fill(P_tbl); //将表中对象放入P_tbl中
return P_tbl;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} /// <summary>
/// 返回SqlDataReader类型数据
/// </summary>
/// <param name="cmdtxt">要执行的SQL语句</param>
/// <returns></returns>
public SqlDataReader GetReader(string cmdtxt)
{
G_Com = new SqlCommand(cmdtxt, GetCon()); //声明SqlCommand对象
SqlDataReader P_Dr;
try
{
P_Dr = G_Com.ExecuteReader();
return P_Dr;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} /// <summary>
/// 返回数据库的存储过程
/// </summary>
/// <param name="cmdtxt">要返回数据库的存储过程</param>
/// <returns></returns>
public DataSet GetProcedure(string cmdtxt)
{
try
{
G_Da = new SqlDataAdapter(cmdtxt, GetCon());
G_Ds = new DataSet();
G_Da.Fill(G_Ds);
return G_Ds;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
GetCon().Dispose();
}
}
}
#endregion
}
}总觉得程序启动特别的慢,
因为要搜索局域网的IP地址。
所以在这想请问各位高手有什么方法能够快速的找到数据库所在的PC的IP地址???
望高手们提供优质的代码!
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.IO;
namespace LightCtrlApp
{
class SqlConn : IDisposable
{
#region 代码中用到的变量
SqlDataAdapter G_Da; //声明数据适配器对象
DataSet G_Ds; //声明数据集对象
SqlCommand G_Com;
SqlConnection G_Con; //声明链接对象
#endregion #region 构造函数及释放连接
/// <summary>
/// 构造函数
/// </summary>
public SqlConn()
{ }
//释放连接
public void Dispose()
{
//强制对零代到指定代进行垃圾回收
GC.Collect();
}
#endregion
#region 连接数据库
/// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public SqlConnection GetCon()
{
try
{
string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "参数配置.xml");
if (File.Exists(configFile))
{
XmlOperator xmlOperator = new XmlOperator(configFile);
int size = xmlOperator.GetXmlReader().Length;
string[] getDataBaseInfo = new string[size]; for (int i = 0; i < size; i++)
{
getDataBaseInfo[i] = xmlOperator.GetXmlReader()[i];
}
string G_Str_ConnectionString = "Server=" + getDataBaseInfo[0];
G_Str_ConnectionString += ";user id=" + getDataBaseInfo[1];
G_Str_ConnectionString += ";password=" + getDataBaseInfo[2];
G_Str_ConnectionString += ";initial catalog=" + getDataBaseInfo[3] + ";Connect Timeout=20"; G_Con = new SqlConnection(G_Str_ConnectionString);
G_Con.Open();
}
else
{
MessageBox.Show("不存在配置文件,请添加!");
Application.Exit();
}
}
catch (Exception ex)
{
MessageBox.Show("数据库打开失败,错误原因:" + ex.Message.ToString());
}
return G_Con;
} /// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdtxt">要执行的SQL语句</param>
/// <returns></returns>
public bool GetExecute(string cmdtxt)
{
G_Com = new SqlCommand(cmdtxt, GetCon());
try
{
G_Com.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return false;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} #endregion #region 返回数据
/// <summary>
/// 返回数据集类型
/// </summary>
/// <param name="cmdtxt">需要查询的SQL语句</param>
/// <returns></returns>
public DataSet GetDs(string cmdtxt, string table)
{
try
{
G_Da = new SqlDataAdapter(cmdtxt, GetCon());
G_Ds = new DataSet();
G_Da.Fill(G_Ds, table);
return G_Ds;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} /// <summary>
/// 返回数据表
/// </summary>
/// <param name="cmdtxt"></param>
/// <param name="tablename"></param>
/// <returns></returns>
public DataTable GetTable(string cmdtxt, string tablename)
{
DataTable P_tbl; //声明一个DataTable对象
try
{
G_Da = new SqlDataAdapter(cmdtxt, tablename);
P_tbl = new DataTable(tablename);
G_Da.Fill(P_tbl); //将表中对象放入P_tbl中
return P_tbl;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} /// <summary>
/// 返回SqlDataReader类型数据
/// </summary>
/// <param name="cmdtxt">要执行的SQL语句</param>
/// <returns></returns>
public SqlDataReader GetReader(string cmdtxt)
{
G_Com = new SqlCommand(cmdtxt, GetCon()); //声明SqlCommand对象
SqlDataReader P_Dr;
try
{
P_Dr = G_Com.ExecuteReader();
return P_Dr;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
this.Dispose();
}
}
} /// <summary>
/// 返回数据库的存储过程
/// </summary>
/// <param name="cmdtxt">要返回数据库的存储过程</param>
/// <returns></returns>
public DataSet GetProcedure(string cmdtxt)
{
try
{
G_Da = new SqlDataAdapter(cmdtxt, GetCon());
G_Ds = new DataSet();
G_Da.Fill(G_Ds);
return G_Ds;
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message.ToString());
return null;
}
finally
{
if (GetCon().State == ConnectionState.Open)
{
GetCon().Close();
GetCon().Dispose();
}
}
}
#endregion
}
}总觉得程序启动特别的慢,
因为要搜索局域网的IP地址。
所以在这想请问各位高手有什么方法能够快速的找到数据库所在的PC的IP地址???
望高手们提供优质的代码!
----------------------
你在服务器本身上试试telnet 127.0.0.1 1433这样子的话每台电脑要连接之前都要设置防火墙,开放1433端口很是麻烦。
我自己在电脑上测试了一下,就没成功,提示连接失败!看来我本机也关闭了1433这个端口!