using System;
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;
using System.Data;
/// <summary>
///DB 的摘要说明
/// </summary>
public class DB
{
public SqlConnection con = new SqlConnection();
public SqlCommand cmd;
public DataSet ds = new DataSet();
public SqlDataAdapter sda;
public string GetConnectionstring()
{
string constr = System.Configuration.ConfigurationManager.AppSettings.Get(0).ToString();
return constr;
}
public DataSet GetDataTableBySql(string sqlstr)
{
ds.Clear();
con.ConnectionString = GetConnectionstring();
sda = new SqlDataAdapter(sqlstr,con);
sda.Fill(ds);
return ds;
}
public Boolean UpdateDataBySql(string sqlstr)
{
con.ConnectionString = GetConnectionstring();
cmd = new SqlCommand(sqlstr,con);
try
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return true;
}
catch (SqlException)
{
con.Close();
return false;
}
}
}
请问这个DB有没有写错,如果没有的话给我讲解一些思路,谢谢!
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;
using System.Data;
/// <summary>
///DB 的摘要说明
/// </summary>
public class DB
{
public SqlConnection con = new SqlConnection();
public SqlCommand cmd;
public DataSet ds = new DataSet();
public SqlDataAdapter sda;
public string GetConnectionstring()
{
string constr = System.Configuration.ConfigurationManager.AppSettings.Get(0).ToString();
return constr;
}
public DataSet GetDataTableBySql(string sqlstr)
{
ds.Clear();
con.ConnectionString = GetConnectionstring();
sda = new SqlDataAdapter(sqlstr,con);
sda.Fill(ds);
return ds;
}
public Boolean UpdateDataBySql(string sqlstr)
{
con.ConnectionString = GetConnectionstring();
cmd = new SqlCommand(sqlstr,con);
try
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return true;
}
catch (SqlException)
{
con.Close();
return false;
}
}
}
请问这个DB有没有写错,如果没有的话给我讲解一些思路,谢谢!
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return true;
}
catch (SqlException)
{
con.Close();
return false;
}就直接返回True了。意思是指要不是异常就是True 呗?
{
ds.Clear();
con.ConnectionString = GetConnectionstring();
sda = new SqlDataAdapter(sqlstr,con);
sda.Fill(ds);
return ds;
}
这个函数里的ds每次最好new一个新的
在GetDataTableBySql中,先将DataSet 类型的实例ds先清空,然后再调用GetConnectionstring方法获取连接字符串,然后通过适配器来将查询结果保存,并用适配器中的Fill方法将结果放在ds中并返回。
在UpdateDataBySql中,也是先尝试打开连接,执行ExecuteNonQuery方法,这样就可以将sql语句执行到数据库中,然后关闭连接。
public SqlCommand cmd;
public DataSet ds = new DataSet();
public SqlDataAdapter sda;
/*定义在外面,每次用完后都无法及时回收,建议里面用到就在里面定义。*/public Boolean UpdateDataBySql(string sqlstr)
{
con.ConnectionString = GetConnectionstring();
cmd = new SqlCommand(sqlstr,con);
try
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return true;
}
catch (SqlException)
{
con.Close();
return false;
}
/*不要在catch里面写con.close();在finally里面写;*/
new个新的就是重新初始化一下咯,不然同时操作的时候会出错的。
new个新的就是重新初始化一下咯,不然同时操作的时候会出错的。
源错误:
行 24: con.ConnectionString = GetConnectionstring();
行 25: sda = new SqlDataAdapter(sqlstr,con);
行 26: sda.Fill(ds);
行 27: return ds;
显示实例失败,是不是会出现这样的问题,那要在那里解决呢?
public SqlConnection con = new SqlConnection();
public SqlCommand cmd;
public DataSet ds = new DataSet();//增,删,改不会用到,new出来干什么?浪费
public SqlDataAdapter sda;另外微软在PetShop中有一个SqlHelper类
你可以看看微软是怎么写的或看看别人是怎么写的http://www.cnblogs.com/why520crazy/articles/1677281.html
http://blog.csdn.net/sabic/article/details/6633168
{
ds=new DataSet();
con.ConnectionString = GetConnectionstring();
sda = new SqlDataAdapter(sqlstr,con);
sda.Fill(ds);
return ds;
}
new个新的就是重新初始化一下咯,不然同时操作的时候会出错的。
源错误:
行 24: con.ConnectionString = GetConnectionstring();
行 25: sda = new SqlDataAdapter(sqlstr,con);
行 26: sda.Fill(ds);
行 27: return ds;
显示实例失败,是不是会出现这样的问题,那要在那里解决呢?
楼上已经说了。。还是建议下楼主去看看别人封装的 DBHelper 类,然后自己多用用。。
new个新的就是重新初始化一下咯,不然同时操作的时候会出错的。
源错误:
行 24: con.ConnectionString = GetConnectionstring();
行 25: sda = new SqlDataAdapter(sqlstr,con);
行 26: sda.Fill(ds);
行 27: return ds;
显示实例失败,是不是会出现这样的问题,那要在那里解决呢?
楼上已经说了。。还是建议下楼主去看看别人封装的 DBHelper 类,然后自己多用用。。多用用不是指用别人封装好的。。是指自己手打,各种调用都试试,最好刚开始能 F11 跟进看看执行步骤。