首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库连接操作亟需指点

2012-09-17 
数据库连接操作需要指点ST_WebCourse鼠标右键-〉选择页中的权限中的用户和角色有tester和tester1连个管理员

数据库连接操作需要指点
ST_WebCourse鼠标右键-〉选择页中的权限中的用户和角色有tester和tester1连个管理员
web.config配置文件中含有以下链接数据库的
<add key="ConnString" value="server=.\\EXPRESS;uid=tester;pwd=123456;Provider=SQLOLEDB;persist security info=false;initailcatalog=ST_WebCourse;Max Pool Szie=1000"/>

 //要执行的sql语句:选出用户所输入的用户名和密码相同的数据
  string ST_strsql = "select * from ST_tUser where ST_Username='"+adminname.Text+"'+and ST_Userpassword='"+adminpass.Text+"'and ST_UserClass=2";
  DataTable ST_dt = new DataTable();
  //调用自己定义的方法ReadTable用来获取一个DataTable
  ST_dt = ST_database.ReadTable(ST_strsql);
  //用户存在
  if (ST_dt.Rows.Count > 0)
  {
  Session["admin"] = adminname.Text;
  Response.Redirect("ST_Admin_index.aspx");
  }
  else
  {
  adminpass.Text = "";
  }
以下是ST_DataBase类的全部,其中含有对数据库的操作
public class ST_DataBase:System.Web.UI.Page
{
  //用来存储接受到的数据库字符串
  string ST_ConnectionString;
public ST_DataBase()
{
  //获取连接数据库的字符串并赋值给ST_ConnectionString;
  ST_ConnectionString =ConfigurationManager.AppSettings["ConnString"];
}
  //读数据表--DataTable
  public DataTable ReadTable(string strSql)
  {
  ST_ConnectionString = ConfigurationManager.AppSettings["ConnString"];
  //创建一个数据表ST_dd
  DataTable ST_dd = new DataTable();
  //定义新的数据连接控件并初始化
  OleDbConnection ST_dbconn = new OleDbConnection(ST_ConnectionString);
  //打开连接
  ST_dbconn.Open();
  //定义并初始化数据适配器
  OleDbDataAdapter ST_adapter = new OleDbDataAdapter(strSql,ST_dbconn);
  //将数据适配器中的数据填充到数据集ST_dd中
  ST_adapter.Fill(ST_dd);
  //关闭连接
  ST_dbconn.Close();
  return ST_dd;
  }
  public DataSet Readdate(string strSql)
  { 
  //创建数据集
  DataSet ST_dd = new DataSet();
  //定义并新的数据连接控件并初始化
  OleDbConnection ST_dbconn = new OleDbConnection(ST_ConnectionString);
  //打开连接
  ST_dbconn.Open();
  //定义并初始化数据适配器
  OleDbDataAdapter adapter = new OleDbDataAdapter(strSql,ST_dbconn);
  //将数据适配器中数据填充数据集ST_dd中
  adapter.Fill(ST_dd);
  //关闭连接
  ST_dbconn.Close();
  return ST_dd;
  }
  public DataSet GetDataSet(string strSql, string tableName)
  { 
  //定义一个数据集,用来赋值给应用程序的一个数据集
  DataSet dataSet = new DataSet();
  //定义新的数据连接控件并初始化
  OleDbConnection ST_conn = new OleDbConnection(ST_ConnectionString);
  System.Data.OleDb.OleDbDataAdapter dataAdapter = new OleDbDataAdapter(strSql,ST_conn);
  dataAdapter.Fill(dataSet,tableName);
  //返回这个数据集
  return dataSet;
  }
  public OleDbDataReader readrow(string sql)
  {
  OleDbConnection ST_Con = new OleDbConnection(ST_ConnectionString);
  //生成一个OleDbCommand对象,表示要执行的sql语句或存储过程
  OleDbCommand ST_objCommand = new OleDbCommand(sql,ST_Con);
  OleDbDataReader ST_objDataReader;
  ST_objCommand.Connection.Open();
  ST_objDataReader = ST_objCommand.ExecuteReader();
  //如果记录不为空
  if (ST_objDataReader.Read())
  {
  ST_objCommand.Dispose();
  return ST_objDataReader;


  }
  else
  {
  ST_objCommand.Dispose();
  return null;
  }
  }
  //读一行中某一个字段的值
  public string Readstr(string strSql, int flag)
  { 
  //创建一个数据集ST_dd
  DataSet ST_dd = new DataSet();
  string ST_str;
  //定义新的数据连接控件并初始化
  OleDbConnection ST_dbconn = new OleDbConnection(ST_ConnectionString);
  //打开连接
  ST_dbconn.Open();
  //定义并初始化数据适配器
  OleDbDataAdapter ST_adapter = new OleDbDataAdapter(strSql,ST_dbconn);
  //将数据适配器中的数据填充到数据集ST_dd中
  ST_adapter.Fill(ST_dd);
  ST_str = ST_dd.Tables[0].Rows[0].ItemArray[flag].ToString();
  //关闭连接
  ST_dbconn.Close();
  return ST_str;
  }
  public void execsql(string strSql)
  { 
  //定义新的数据连接控件并初始化
  OleDbConnection ST_dbconn = new OleDbConnection(ST_ConnectionString);
  //定义并初始化命令对象
  OleDbCommand ST_comm = new OleDbCommand(strSql,ST_dbconn);
  //关闭连接
  ST_dbconn.Close();
  //打开连接
  ST_dbconn.Open();
  //执行命令
  ST_comm.ExecuteNonQuery();
  //关闭连接
  ST_dbconn.Close();
  }

程序的执行结果是这样的
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。
ST_dt = ST_database.ReadTable(ST_strsql);错误的语句


还有一个关于ms Sql Server软件的问题,为什么一windows身份验证进入管理功力工具之后必须重新启动一下服务器(本机的),才能正常工作,否者有Bug。

[解决办法]
第一个问题:检查tcp/ip、命名管道、sql browser这些开了没?实例名有没有输错?
第二个问题:如果登录还要重启的话,证明你的SQLServer甚至操作系统有问题了。不应该出现这种情况。建议重装,否则就算修复了,也不见得就没问题。

热点排行
Bad Request.