用户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关联。 大哥大姐帮帮我好吗?

woshilupeng 2008-12-13 02:56:19
SqlConnection myConnection = new SqlConnection("Server=localhost;uid=;pwd=;database=star");
myConnection.Open();
string strsql=" Insert into star values('" + this.name.Text + "')";
SqlCommand myCommand = new SqlCommand (strsql,myConnection);

SqlTransaction myTrans;
myTrans = myConnection.BeginTransaction(
IsolationLevel.ReadCommitted, "SampleTransaction");
try
{
myCommand.ExecuteNonQuery();
myTrans.Commit();

}
catch(SqlException ex)
{
myTrans.Rollback();

}
finally
{
myConnection.Close();
myCommand=null;
} 我的database是:star,我ASP.NET里有个叫“name"的空间,是由用户输入的,还有一个按钮,这个按钮是把用户输入姓名的数据写入到SQL2000中的,那怎么会出现这个连接错误呢?对了我用的是VS2005。
...全文
765 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
楼上终于成功了,谢谢你啊。如果你是女的,么么。男的就交个朋友吧,哈哈
net5i 2008-12-13
  • 打赏
  • 举报
回复
噢,sorry,没改完:
protected void Button1_Click(object sender, EventArgs e)
{

SqlConnection myConnection = new SqlConnection("Integrated Security=True;Server=(local);uid=sa;pwd=sa;database=star");


string strsql=" Insert into star values('" + this.name.Text + "')";
SqlCommand myCommand = new SqlCommand (strsql,myConnection);
myConnection.Open();
myCommand.Transaction= myConnection.BeginTransaction( IsolationLevel.ReadCommitted, "SampleTransaction");

try
{
myCommand.ExecuteNonQuery();
myCommand.Transaction.Commit();
lblMessage.Text = ("以保存数据库,谢谢您的参与");
}
catch(SqlException ex)
{
myCommand.Transaction.Rollback();
lblMessage.Text = ("保存失败!");
}
finally
{
myConnection.Close();
myCommand=null;
}
}
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
郁闷纳,怎么又有一个错误” CS0103: 当前上下文中不存在名称“myTrans”。。。。
net5i 2008-12-13
  • 打赏
  • 举报
回复
呵呵,搂住没有初始化Commmand里面的事务对象,直接给你改个代码吧:
protected void Button1_Click(object sender, EventArgs e)
{

SqlConnection myConnection = new SqlConnection("Integrated Security=True;Server=(local);uid=sa;pwd=sa;database=star");


string strsql=" Insert into star values('" + this.name.Text + "')";
SqlCommand myCommand = new SqlCommand (strsql,myConnection);
myConnection.Open();
myCommand.Transaction= myConnection.BeginTransaction(
IsolationLevel.ReadCommitted, "SampleTransaction");


try
{
myCommand.ExecuteNonQuery();
myTrans.Commit();
lblMessage.Text = ("以保存数据库,谢谢您的参与");
}
catch(SqlException ex)
{
myTrans.Rollback();
lblMessage.Text = ("保存失败!");
}
finally
{
myConnection.Close();

myCommand=null;

}

}
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
完了。。。完了越复杂了,我是按照”net5i“添加一条”myCommand.ExecuteNonQuery(); “可是偶又出现这个错误了:

如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化。
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
我使用的是混合模式啊,里面用户名,密码都为空的,对了还有我把Integrated Security=True;这个去掉就出现错误了”显示:用户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关联。这怎么回事啊?
net5i 2008-12-13
  • 打赏
  • 举报
回复
也就是改成:
try
{
myCommand.ExecuteNonQuery();
myTrans.Commit();
lblMessage.Text = ("以保存数据库,谢谢您的参与");
}

这样才会执行SQL的哟
net5i 2008-12-13
  • 打赏
  • 举报
回复
搂主五楼代码里,怎么把:命令执行代码:
myCommand.ExecuteNonQuery(); 去掉了呢?

这个可是必须的
yunan_wind 2008-12-13
  • 打赏
  • 举报
回复
我以前也遇到过这个错误,我认为你首先应该看看设置:

如; 1 用户名,口令是否正确UI=
2:是否使用混合登陆模式。

看过这些,我建议你再看一看程序代码方面的问题。
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
LS,不是的,我姓名控件里有验证的,用户名(name)用户必须输入!,不然点击保存按钮是没用的。
zxc544164 2008-12-13
  • 打赏
  • 举报
回复
if (textBox1.Text.Equals("") || textBox2.Text.Equals(""))
{
MessageBox.Show("用户名或密码不能为空!");
}
else
{
con = new SqlConnection(@"Data Source=owen\SQL2008;Initial Catalog=mydb;Persist Security Info=True;User ID=sa;Password=sa");
com = new SqlCommand("select count(*) from [user] where name='" + textBox1.Text.Trim() + "' and password='" + textBox2.Text.Trim() + "'", con);
con.Open();
int i = (int)com.ExecuteScalar();
con.Close();
if (i != 0)
{
MessageBox.Show("登陆成功!");
}
else
{
MessageBox.Show("登陆不成功!");
}
}
zxc544164 2008-12-13
  • 打赏
  • 举报
回复
if (textBox1.Text.Equals("") || textBox2.Text.Equals(""))
{
MessageBox.Show("用户名或密码不能为空!");
}
else
{
con = new SqlConnection(@"Data Source=owen\SQL2008;Initial Catalog=mydb;Persist Security Info=True;User ID=sa;Password=sa");
com = new SqlCommand("select count(*) from [user] where name='" + textBox1.Text.Trim() + "' and password='" + textBox2.Text.Trim() + "'", con);
con.Open();
int i = (int)com.ExecuteScalar();
con.Close();
if (i != 0)
{
MessageBox.Show("登陆成功!");
}
else
{
MessageBox.Show("登陆不成功!");
}
}
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
代码是没有问题,但是就是有个警告”声明了变量“ex”,但从未使用过“
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
回复”人生如梦“,我把 myTrans.Rollback();lblMessage.Text = ("保存失败!");,去掉了,还是显示”
以保存数据库,谢谢您的参与“,我感觉。。。这事务上肯定有错误。。。。谢谢大家了我现在急死了
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
没有什么异常啊,那问题我建了个Lable控件,那个控件不是显示事务消息的吗?怎么就直接出现”以保存数据库,谢谢您的参与“,照常理来说,没有保存,怎么就出现这个消息呢。。。。现在想的头也大了。。。
wuyq11 2008-12-13
  • 打赏
  • 举报
回复
调试看看 catch(SqlException ex)
{
}
是否有错误
net5i 2008-12-13
  • 打赏
  • 举报
回复
呵呵,LS,搂主已经说了:“连接数据库是没出错”
flyjimi 2008-12-13
  • 打赏
  • 举报
回复
连接字符串里的用户名密码没对。
net5i 2008-12-13
  • 打赏
  • 举报
回复
搂主上面代码出现什么异常错误?还有错误信息具体是什么?
woshilupeng 2008-12-13
  • 打赏
  • 举报
回复
protected void Button1_Click(object sender, EventArgs e)
{

SqlConnection myConnection = new SqlConnection("Integrated Security=True;Server=(local);uid=sa;pwd=sa;database=star");


string strsql=" Insert into star values('" + this.name.Text + "')";
SqlCommand myCommand = new SqlCommand (strsql,myConnection);
myConnection.Open();
SqlTransaction myTrans;
myTrans = myConnection.BeginTransaction(
IsolationLevel.ReadCommitted, "SampleTransaction");
try
{

myTrans.Commit();
lblMessage.Text = ("以保存数据库,谢谢您的参与");
}
catch(SqlException ex)
{
myTrans.Rollback();
lblMessage.Text = ("保存失败!");
}
finally
{
myConnection.Close();

myCommand=null;

}

}现在我已经全面的修改了下,连接数据库是没出错,那怎么还是没有把用户在姓名栏里输入的数据写入到SQL表(star)里呢
加载更多回复(4)

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧