SqlConnection conn = new SqlConnection(s);
string txtcommand = "select * from user where user_name='" + TextBox1.Text + "'and user_key='" + TextBox2.Text + "'";
SqlDataReader objReader; // 创建DataReader对象
SqlCommand objSqlCommand = new SqlCommand(txtcommand, conn); // 创建数据库命令对象
SqlTransaction objSqlTransaction = conn.BeginTransaction();// 开始事务 (提示在这一步无效操作。连接关闭)
objSqlCommand.Transaction = objSqlTransaction;// 执行操作)
try
{
objReader = objSqlCommand.ExecuteReader(); // 执行DataReader对象
if (!objReader.Read()) // 获取数据
{ Response.Write("<script language=javascript>alert('用户名或密码错误!');</script>"); }
else
{
Session["user"] = objReader["user_name"];
Session["pwd"] = objReader["user_key"];
objReader.Close(); // 关闭DataReader对象
Response.Redirect("http://www.baidu.com");
}
}
catch (Exception ex) // 捕获异常
{
objSqlTransaction.Rollback(); // 出现异常时,撤消事务
TextBox1.Text = "Error: " + ex.Message;
}
finally
{
conn.Close(); // 关闭数据库连接
}
这段代码老是提示有错误“无效操作。连接被关闭”请高手指点迷津,不胜感激。。
8 个解决方案
#1
string s = "database=privide;server=localhost;integrated security=true";
很明显是两节字符串的问题
需要加上用户名和 密码
string s = "database=privide;server=localhost;integrated security=true ;uid=uid;pwd=pwd";
很明显是两节字符串的问题
需要加上用户名和 密码
string s = "database=privide;server=localhost;integrated security=true ;uid=uid;pwd=pwd";
#2
conn open() 在哪里
#3
1、首先你不需要SqlTransaction,因为你只是单纯的从数据库中取出数据。所以不存在回滚,去掉相关SqlTransaction语句。
2、SqlCommand objSqlCommand = new SqlCommand(txtcommand, conn); // 创建数据库命令对象
后加:conn.Open();//打开数据库连接
3、objReader = objSqlCommand.ExecuteReader();
语句请改成:objReader = objSqlCommand.ExecuteReader
(CommandBehavior.CloseConnection);
打开的连接必须及时关闭。
4、最后去掉conn.Close(); // 关闭数据库连接 ,因为使用了CommandBehavior.CloseConnection。
2、SqlCommand objSqlCommand = new SqlCommand(txtcommand, conn); // 创建数据库命令对象
后加:conn.Open();//打开数据库连接
3、objReader = objSqlCommand.ExecuteReader();
语句请改成:objReader = objSqlCommand.ExecuteReader
(CommandBehavior.CloseConnection);
打开的连接必须及时关闭。
4、最后去掉conn.Close(); // 关闭数据库连接 ,因为使用了CommandBehavior.CloseConnection。
#4
using(SqlConnection conn = new SqlConnection(s))
{
conn.open();
objReader = objSqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
{
conn.open();
objReader = objSqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
#5
支持!
#6
SqlDataReader objReader; // 创建DataReader对象
conn.Open();
你数据库连接没打开吧
conn.Open();
你数据库连接没打开吧
#7
string s = "database=privide;server=localhost;integrated security=true";
SqlConnection conn = new SqlConnection(s);
conn.open()//没有打开连接!
#8
谢谢各位朋友的指教,问题已经解决,就是缺少了conn.open();还有[user]。
#1
string s = "database=privide;server=localhost;integrated security=true";
很明显是两节字符串的问题
需要加上用户名和 密码
string s = "database=privide;server=localhost;integrated security=true ;uid=uid;pwd=pwd";
很明显是两节字符串的问题
需要加上用户名和 密码
string s = "database=privide;server=localhost;integrated security=true ;uid=uid;pwd=pwd";
#2
conn open() 在哪里
#3
1、首先你不需要SqlTransaction,因为你只是单纯的从数据库中取出数据。所以不存在回滚,去掉相关SqlTransaction语句。
2、SqlCommand objSqlCommand = new SqlCommand(txtcommand, conn); // 创建数据库命令对象
后加:conn.Open();//打开数据库连接
3、objReader = objSqlCommand.ExecuteReader();
语句请改成:objReader = objSqlCommand.ExecuteReader
(CommandBehavior.CloseConnection);
打开的连接必须及时关闭。
4、最后去掉conn.Close(); // 关闭数据库连接 ,因为使用了CommandBehavior.CloseConnection。
2、SqlCommand objSqlCommand = new SqlCommand(txtcommand, conn); // 创建数据库命令对象
后加:conn.Open();//打开数据库连接
3、objReader = objSqlCommand.ExecuteReader();
语句请改成:objReader = objSqlCommand.ExecuteReader
(CommandBehavior.CloseConnection);
打开的连接必须及时关闭。
4、最后去掉conn.Close(); // 关闭数据库连接 ,因为使用了CommandBehavior.CloseConnection。
#4
using(SqlConnection conn = new SqlConnection(s))
{
conn.open();
objReader = objSqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
{
conn.open();
objReader = objSqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
#5
支持!
#6
SqlDataReader objReader; // 创建DataReader对象
conn.Open();
你数据库连接没打开吧
conn.Open();
你数据库连接没打开吧
#7
string s = "database=privide;server=localhost;integrated security=true";
SqlConnection conn = new SqlConnection(s);
conn.open()//没有打开连接!
#8
谢谢各位朋友的指教,问题已经解决,就是缺少了conn.open();还有[user]。