每次调用CreateTable都得新建一个连接.浪费.
MyDAdapter.SelectCommand.CommandType = CommandType.Text;这句画蛇添足.
使用了DataAdapter却没设置更新逻辑.-_-!
不想打击你,写的太烂了.
MyDAdapter.SelectCommand.CommandType = CommandType.Text;这句画蛇添足.
使用了DataAdapter却没设置更新逻辑.-_-!
不想打击你,写的太烂了.
解决方案 »
- 请前辈给我讲下GridView读取sqlserver2005数据的步骤吧,想大概知道下原理,小弟先感谢前辈了!
- 正则求教。。过客兄逍遥兄速速现身
- 我的VS2005断点无法调试?请高手指教
- 关于WebBrowser处理框架网页中的子页面代码
- 在datagrid中如何实现字段比值
- C#在mousedown事件中如何判断ctrl键是否被按下?
- WPF richtextbox 换行问题
- 各位朋友帮忙,一个paradox的问题!
- 格式化变量怎么做到无错呢?
- System.ArgumentOutOfRangeException Message=索引超出范围。必须为非负值并小于集合大小
- 在InstallShield X中,怎么加入License一个对话框和显示我的License.rtf文件的内容?
- PDA程序怎样实现打包??
using System.Data.SqlClient ;
using System.Data ;
using System.Configuration ;
using System.Collections ;
using System.Diagnostics;namespace lzinfo.Public
{
/// <summary>
///
/// </summary>
public class Database:IDisposable
{
private SqlConnection Con; public void Open()
{//打开连接
if(this.Con==null)
{
this.Con=new SqlConnection (ConfigurationSettings.AppSettings["Connection"]);
}
this.Con.Open();
}
public void Colse()
{//关闭连接
if(this.Con!=null)
{
this.Con.Close();
}
} public void Dispose()
{
if(this.Con!=null)
{
this.Con.Dispose ();
}
}
public SqlCommand CreateCommand(string ProName,SqlParameter[] Parms)
{//建立Command,每一个都会使用Command,但是此Command只能用于存储过程
this.Open ();
SqlCommand Cmd=new SqlCommand (ProName,this.Con);
Cmd.CommandType =CommandType.StoredProcedure ;
if(Parms!=null)
{
foreach(SqlParameter Parm in Parms)
{
Cmd.Parameters .Add (Parm);
}
}
Cmd.Parameters .Add (new SqlParameter ("ReturnValue",SqlDbType.Int ,4,ParameterDirection.ReturnValue ,false,0,0,string.Empty ,DataRowVersion.Default ,null ));
return Cmd;
}
//创建输入参数
public SqlParameter MakeInParam(string ProName,SqlDbType DbType,Int32 Size,object Values)
{
return this.MakeParam (ProName, DbType, Size, ParameterDirection.Input, Values);
}
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Values)
{
SqlParameter param; if(Size > 0)
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Values == null))
param.Value = Values; return param;
}
public int RunPro(string ProName)
{//适用于执行删除和更新的存储过程并且不返回任何的记录集,并且不需要传入任何的参数
SqlCommand Cmd=CreateCommand(ProName,null);
Cmd.ExecuteNonQuery ();
this.Colse ();
return (int)Cmd.Parameters["ReturnValue"].Value ;
}
public int RunPro(string ProName,SqlParameter[] Parms)
{//适用于要传入参数的存储过程
SqlCommand Cmd=CreateCommand(ProName,Parms);
Cmd.ExecuteNonQuery ();
this.Colse ();
// this.Dispose();
return (int)Cmd.Parameters["ReturnValue"].Value;
}
public void RunPro(string ProName,out SqlDataReader dataReader)
{//没有输入参数,而且要返回一个DataReader记录集
SqlCommand Cmd=CreateCommand(ProName,null);
dataReader=Cmd.ExecuteReader(System.Data.CommandBehavior .CloseConnection );
}
public void RunPro(string ProName,SqlParameter[] Parms,out SqlDataReader dataReader)
{//适用于有传入参数,而且要返回一个DataReader记录集
SqlCommand Cmd=CreateCommand(ProName,Parms);
dataReader=Cmd.ExecuteReader(System.Data.CommandBehavior .CloseConnection );
}
public int RunPro(string ProName,out DataSet Dataset)
{//适用于没有传入参数,而且要返回一个DataSet内存数据库
SqlCommand Cmd=CreateCommand(ProName,null);
SqlDataAdapter Da=new SqlDataAdapter ();
Da.SelectCommand =Cmd;
Dataset=new DataSet ();
Da.Fill (Dataset);
this.Colse ();
return (int)Cmd.Parameters["ReturnValue"].Value;
}
public int RunPro(string ProName,SqlParameter[] Parms,out DataSet Dataset)
{
SqlCommand Cmd=CreateCommand(ProName,Parms);
SqlDataAdapter Da=new SqlDataAdapter ();
Da.SelectCommand =Cmd;
Dataset=new DataSet ();
Da.Fill (Dataset);
this.Colse ();
return (int)Cmd.Parameters["ReturnValue"].Value ;
}
public int RunPro(string procName,SqlParameter[] prams, DataSet dataSet,string TableName)
{
SqlCommand Cmd = CreateCommand(procName, prams);
SqlDataAdapter sqlAdapter;
sqlAdapter=new SqlDataAdapter();
sqlAdapter.SelectCommand=Cmd;
// if (dataSet==null)
// {
// dataSet=new DataSet();
// };
sqlAdapter.Fill(dataSet,TableName);
this.Colse ();
return (int)Cmd.Parameters["ReturnValue"].Value ;
}
}
}
谢谢你,收益太大了!!1