c#保存数据的问题 各位大侠好: 我有个程序,当我把数据保存到SQL SERVER数据库时,程序老死机,请问这是什么原因呀?急呀,急呀,分不够再加,顶者也有分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class SqlHelper { //数据库连接Url private string url=string.Empty; //内部命令 private SqlCommand cmd=null; public string Url { get{return url;} set{url=value;} } public SqlCommand Command { get{return cmd;} } public SqlHelper(){} public SqlHelper(string url){this.url=url;} /// <summary> /// 初始化 /// </summary> public void Init() { try { cmd=new SqlCommand(string .Empty,new SqlConnection(url)); } catch(Exception ex) { throw new Exception("创建连接错误!",ex); } } public void SelectTextCommand(string sql,IProcessor processor) { SqlDataReader read=null; try { cmd.Parameters.Clear(); cmd.CommandType=CommandType.Text; cmd.CommandText=sql; if(cmd.Connection.State!=ConnectionState.Open) cmd.Connection.Open(); read=cmd.ExecuteReader(); processor.Parse(read); } catch(Exception ex) { ex.ToString(); } finally { try { if(read!=null) read.Close(); if(cmd!=null) if(cmd.Connection.State!=ConnectionState.Closed) cmd.Connection.Close(); } catch{} } } /// <summary> /// 查询sql语句 /// </summary> /// <param name="sql"></param> /// <returns></returns> public DataTable SelectTextCommand(string sql) { try { cmd.Parameters.Clear(); cmd.CommandType=CommandType.Text; cmd.CommandText=sql; if(cmd.Connection.State!=ConnectionState.Open) cmd.Connection.Open(); DataTable dt=new DataTable(); SqlDataAdapter da=new SqlDataAdapter(cmd); da.Fill(dt); return dt; } catch(Exception ex) { ex.ToString(); } finally { if(cmd!=null) if(cmd.Connection.State!=ConnectionState.Closed) cmd.Connection.Close(); } return null; } public DataTable SelectStoreCommand(SqlCommand cmd) { try { cmd.CommandType=CommandType.StoredProcedure; SqlDataAdapter da=new SqlDataAdapter(cmd); DataTable dt=new DataTable(); if(cmd.Connection.State!=ConnectionState.Open) cmd.Connection.Open(); da.Fill(dt); return dt; } catch(Exception ex) { ex.ToString(); } finally { if(cmd!=null) if(cmd.Connection.State!=ConnectionState.Closed) cmd.Connection.Close(); } return null; } /// <summary> /// 执行sql命令 /// </summary> /// <param name="sql"></param> /// <returns></returns> public bool SqlTextCommand(string sql) { try { cmd.Parameters.Clear(); cmd.CommandType=CommandType.Text; cmd.CommandText=sql; if(cmd.Connection.State!=ConnectionState.Open) cmd.Connection.Open(); cmd.ExecuteNonQuery(); return true; } catch(Exception ex) { ex.ToString(); } finally { if(cmd!=null) if(cmd.Connection.State!=ConnectionState.Closed) cmd.Connection.Close(); } return false; } /// <summary> /// 执行存储过程 /// </summary> /// <param name="cmd"></param> /// <returns></returns> public bool SqlStoreCommand(SqlCommand cmd) { try { cmd.CommandType=CommandType.StoredProcedure; if(cmd.Connection.State!=ConnectionState.Open) cmd.Connection.Open(); cmd.ExecuteNonQuery(); return true; } catch(Exception ex) { ex.ToString(); } finally { if(cmd!=null) if(cmd.Connection.State!=ConnectionState.Closed) cmd.Connection.Close(); } return false; } }下面一个示例 public bool Insert(EmpTableInfo info) { if(info==null) return false; SqlCommand cmd=helper.Command; cmd.Parameters.Clear(); cmd.CommandText="EmpTable_Insert"; cmd.Parameters.Add("@EmpID",SqlDbType.Int); cmd.Parameters.Add("@EmpCode",SqlDbType.NVarChar,32); cmd.Parameters.Add("@Name",SqlDbType.NVarChar,32); cmd.Parameters.Add("@Sex",SqlDbType.Int); cmd.Parameters.Add("@BirthDay",SqlDbType.DateTime); cmd.Parameters.Add("@Email",SqlDbType.NVarChar,32); cmd.Parameters.Add("@Phone",SqlDbType.NVarChar,32); cmd.Parameters.Add("@MobilePhone",SqlDbType.NVarChar,32); cmd.Parameters.Add("@ImagePath",SqlDbType.NVarChar,500); cmd.Parameters.Add("@Memo",SqlDbType.NText); cmd.Parameters.Add("@EmpTypeID",SqlDbType.Int); cmd.Parameters.Add("@OrganID",SqlDbType.Int); cmd.Parameters.Add("@DepartmentID",SqlDbType.Int); cmd.Parameters.Add("@GroupID",SqlDbType.Int); cmd.Parameters.Add("@PositionID",SqlDbType.Int); cmd.Parameters.Add("@UserID",SqlDbType.Int); cmd.Parameters["@EmpID"].Direction=ParameterDirection.Output; cmd.Parameters["@EmpCode"].Value=info.EmpCode; cmd.Parameters["@Name"].Value=info.Name; cmd.Parameters["@Sex"].Value=info.Sex; cmd.Parameters["@BirthDay"].Value=info.BirthDay; cmd.Parameters["@Email"].Value=info.Email; cmd.Parameters["@Phone"].Value=info.Phone; cmd.Parameters["@MobilePhone"].Value=info.MobilePhone; cmd.Parameters["@ImagePath"].Value=info.ImagePath; cmd.Parameters["@Memo"].Value=info.Memo; cmd.Parameters["@EmpTypeID"].Value=info.EmpTypeID; cmd.Parameters["@OrganID"].Value=info.OrganID; cmd.Parameters["@DepartmentID"].Value=info.DepartmentID; cmd.Parameters["@GroupID"].Value=info.GroupID; cmd.Parameters["@PositionID"].Value=info.PositionID; cmd.Parameters["@UserID"].Value=info.UserID; return helper.SqlStoreCommand(cmd); }查询示例 DataTable dt=helper.SelectTextCommand(sql); 看了,我一般是用SQL语句,所以不太懂。 你是用的存储过程吧,修改cmd.CommandType=CommandType.StoredProcedure; lxwin01(阿幸) 强,楼主问题代码都没有,能回答这么多...... 楼上的话有道理,提问问题也是一门学问.一定要描述清楚才行,大家才有可能帮你解决.Am I right? 求正则表达式,取出html的一个div的内容 C#实现ftp下载的问题?请大哥指教 [怪问]TFS服务连接TF31002 出错 odbc读取DB数据库的问题 谁知道fastreport.net怎么用呀!急急急! 有关框架显示页面的问题,请大家帮忙看看~~ 求高手帮忙看下我这C#代码能接收到手机蓝牙信息并处理吗 C# WinForm 中多人多机器时如何锁定同一个目录中的文件 帮我看看一个简单得string连接操作 高分请教 C#变量的生存周期问题 c#正则表达式如何去掉网页代码的所有HTML标记,只保留文字?!
{
//数据库连接Url
private string url=string.Empty;
//内部命令
private SqlCommand cmd=null; public string Url
{
get{return url;}
set{url=value;}
} public SqlCommand Command
{
get{return cmd;}
} public SqlHelper(){}
public SqlHelper(string url){this.url=url;} /// <summary>
/// 初始化
/// </summary>
public void Init()
{
try
{
cmd=new SqlCommand(string .Empty,new SqlConnection(url));
}
catch(Exception ex)
{
throw new Exception("创建连接错误!",ex);
}
} public void SelectTextCommand(string sql,IProcessor processor)
{
SqlDataReader read=null;
try
{
cmd.Parameters.Clear();
cmd.CommandType=CommandType.Text;
cmd.CommandText=sql;
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
read=cmd.ExecuteReader();
processor.Parse(read);
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
try
{
if(read!=null)
read.Close();
if(cmd!=null)
if(cmd.Connection.State!=ConnectionState.Closed)
cmd.Connection.Close();
}
catch{}
}
} /// <summary>
/// 查询sql语句
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataTable SelectTextCommand(string sql)
{
try
{
cmd.Parameters.Clear();
cmd.CommandType=CommandType.Text;
cmd.CommandText=sql;
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
DataTable dt=new DataTable();
SqlDataAdapter da=new SqlDataAdapter(cmd);
da.Fill(dt);
return dt;
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
if(cmd!=null)
if(cmd.Connection.State!=ConnectionState.Closed)
cmd.Connection.Close();
}
return null;
} public DataTable SelectStoreCommand(SqlCommand cmd)
{
try
{
cmd.CommandType=CommandType.StoredProcedure;
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataTable dt=new DataTable();
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
da.Fill(dt);
return dt;
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
if(cmd!=null)
if(cmd.Connection.State!=ConnectionState.Closed)
cmd.Connection.Close();
}
return null;
} /// <summary>
/// 执行sql命令
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public bool SqlTextCommand(string sql)
{
try
{
cmd.Parameters.Clear();
cmd.CommandType=CommandType.Text;
cmd.CommandText=sql;
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
cmd.ExecuteNonQuery();
return true;
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
if(cmd!=null)
if(cmd.Connection.State!=ConnectionState.Closed)
cmd.Connection.Close();
}
return false;
} /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="cmd"></param>
/// <returns></returns>
public bool SqlStoreCommand(SqlCommand cmd)
{
try
{
cmd.CommandType=CommandType.StoredProcedure;
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
cmd.ExecuteNonQuery();
return true;
}
catch(Exception ex)
{
ex.ToString();
}
finally
{
if(cmd!=null)
if(cmd.Connection.State!=ConnectionState.Closed)
cmd.Connection.Close();
}
return false;
}
}下面一个示例
public bool Insert(EmpTableInfo info)
{
if(info==null)
return false;
SqlCommand cmd=helper.Command;
cmd.Parameters.Clear();
cmd.CommandText="EmpTable_Insert";
cmd.Parameters.Add("@EmpID",SqlDbType.Int);
cmd.Parameters.Add("@EmpCode",SqlDbType.NVarChar,32);
cmd.Parameters.Add("@Name",SqlDbType.NVarChar,32);
cmd.Parameters.Add("@Sex",SqlDbType.Int);
cmd.Parameters.Add("@BirthDay",SqlDbType.DateTime);
cmd.Parameters.Add("@Email",SqlDbType.NVarChar,32);
cmd.Parameters.Add("@Phone",SqlDbType.NVarChar,32);
cmd.Parameters.Add("@MobilePhone",SqlDbType.NVarChar,32);
cmd.Parameters.Add("@ImagePath",SqlDbType.NVarChar,500);
cmd.Parameters.Add("@Memo",SqlDbType.NText);
cmd.Parameters.Add("@EmpTypeID",SqlDbType.Int);
cmd.Parameters.Add("@OrganID",SqlDbType.Int);
cmd.Parameters.Add("@DepartmentID",SqlDbType.Int);
cmd.Parameters.Add("@GroupID",SqlDbType.Int);
cmd.Parameters.Add("@PositionID",SqlDbType.Int);
cmd.Parameters.Add("@UserID",SqlDbType.Int); cmd.Parameters["@EmpID"].Direction=ParameterDirection.Output;
cmd.Parameters["@EmpCode"].Value=info.EmpCode;
cmd.Parameters["@Name"].Value=info.Name;
cmd.Parameters["@Sex"].Value=info.Sex;
cmd.Parameters["@BirthDay"].Value=info.BirthDay;
cmd.Parameters["@Email"].Value=info.Email;
cmd.Parameters["@Phone"].Value=info.Phone;
cmd.Parameters["@MobilePhone"].Value=info.MobilePhone;
cmd.Parameters["@ImagePath"].Value=info.ImagePath;
cmd.Parameters["@Memo"].Value=info.Memo;
cmd.Parameters["@EmpTypeID"].Value=info.EmpTypeID;
cmd.Parameters["@OrganID"].Value=info.OrganID;
cmd.Parameters["@DepartmentID"].Value=info.DepartmentID;
cmd.Parameters["@GroupID"].Value=info.GroupID;
cmd.Parameters["@PositionID"].Value=info.PositionID;
cmd.Parameters["@UserID"].Value=info.UserID; return helper.SqlStoreCommand(cmd);
}
查询示例
DataTable dt=helper.SelectTextCommand(sql);
修改cmd.CommandType=CommandType.StoredProcedure;
一定要描述清楚才行,大家才有可能帮你解决.
Am I right?