问题描述
protectedvoidButton1_Click(objectsender,EventArgse){SqlConnectionmyConnection=newSqlConnection("Server=local;userid=;pwd=;database=");myConnection.Open();SqlCommandmyCommand=myCommand.CreateCommand;SqlTransactionmyTrans;myTrans=myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");myCommand.Connection=myConnection;myCommand.Transaction=myTrans;try{myCommand.CommandText="Insertintostarvalues('"+this.TextBox1.Text+"')";myCommand.ExecuteNonQuery();myTrans.Commit();}catch(SqlExceptionex){myTrans.Rollback();}finally{myConnection.Close();}}
解决方案
解决方案二:
SqlCommandmyCommand=myCommand.CreateCommand;改成SqlCommandmyCommand=myConnection.CreateCommand;
解决方案三:
CreateCommand()要加括号
解决方案四:
回复2楼!对了,谢谢。但是我要连接SQL数据,并要把用户输入的数据保存在SQL表里,这就出错了:提示:在建立与服务器的连接时出错。在连接到SQLServer2005时,在默认的设置下SQLServer不允许进行远程连接可能会导致此失败。(provider:命名管道提供程序,error:40-无法打开到SQLServer的连接)
解决方案五:
protectedvoidButton1_Click(objectsender,System.EventArgse){SqlConnectionmyConnection=newSqlConnection("Server=localhost;uid=sa;pwd=;database=在此写数据源名");myConnection.Open();stringstrsql=""Insertintostarvalues('"+this.TextBox1.Text+"')";SqlCommandmyCommand=newSqlCommand(strsql,myConnection);SqlTransactionmyTrans;myTrans=myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");try{myCommand.ExecuteNonQuery();myTrans.Commit();}catch(SqlExceptionex){myTrans.Rollback();}finally{myConnection.Close();myCommand=null;}}看代码像asp.net的,我学过一点,稍微改了下你试试,看能不能向表名为star中插入数据
解决方案六:
我要把用户操作的数据写入到SQL表里,那怎么写啊?主表:star。。。。也就是说用户在”姓名“控件上输入字符,按保存就把数据写入到数据库,这我很烦恼大家帮帮我好吗最近还要考试哦
解决方案七:
建议结构namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}protectedvoidButton1_Click(objectsender,EventArgse){SqlTransactionTransaction=null;try{using(SqlConnectionConnection=newSqlConnection("Server=local;userid=;pwd=;database=")){Connection.Open();Transaction=Connection.BeginTransaction(IsolationLevel.ReadCommitted);SqlCommandCommand=newSqlCommand("Insertintostarvalues(@into)",Connection,Transaction);Command.Parameters.AddWithValue("into",TextBox1.Text);Command.ExecuteNonQuery();Transaction.Commit();}}catch(Exceptionex){if(Transaction!=null)Transaction.Rollback();MessageBox.Show(ex.Message,String.Empty,MessageBoxButtons.OK,MessageBoxIcon.Error);}}}}
解决方案八:
对了你的sql语句都有问题SqlCommandCommand=newSqlCommand("Insertintostar(XX)values(@XX)",Connection,Transaction);
解决方案九:
SQL主表:star。。。。里面有name....也就是说用户在”姓名“控件上输入字符,按保存就把数据写入到数据库,这我很烦恼大家帮帮我好吗最近还要考试哦protectedvoidButton1_Click(objectsender,EventArgse){SqlConnectionmyConnection=newSqlConnection("Server=local;userid=;pwd=;database=");myConnection.Open();SqlCommandmyCommand=myConnection.CreateCommand;SqlTransactionmyTrans;myTrans=myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");myCommand.Connection=myConnection;myCommand.Transaction=myTrans;try{myCommand.CommandText="Insertintostarvalues('"+this.TextBox1.Text+"')";myCommand.ExecuteNonQuery();myTrans.Commit();}catch(SqlExceptionex){myTrans.Rollback();}finally{myConnection.Close();}}这代码验证是正确的,可是就是连都连不上SQL!系统提示:在建立与服务器的连接时出错。在连接到SQLServer2005时,在默认的设置下SQLServer不允许进行远程连接可能会导致此失败。(provider:命名管道提供程序,error:40-无法打开到SQLServer的连接)
解决方案十:
SqlConnectionmyConnection=newSqlConnection("Server=localhost;uid=sa;pwd=;database=在此写数据库名");在SQLServer中,默认用户名为sa,密码为空,你在安装时要改了,就相应写上。数据库名为主表star所在的数据库。
解决方案十一:
怎么数据库里还是没有数据啊。。。。我是按照那个wartim来写的,数据库是连接上了,那怎么没有被保存到数据库啊
解决方案十二:
其实你这里根本不需要事务,即使要,也不需要IsolationLevel.ReadCommitted,这是缺省的事务隔离级别
解决方案十三:
myCommand.CommandText="Insertintostarvalues('"+this.TextBox1.Text+"')";你的sql语句是错的,应该是出错吧
解决方案十四:
那就直接点,用户在姓名控件栏里输入数据,点保存就可以把数据写入SQL(star)表中。提示:SQL(star)表里有个"name",我那姓名框的ID是“TextBox1”,那怎么可以直接点呢,谢谢大家了,现在已经很晚了,但我要搞懂它
解决方案十五:
SqlCommandCommand=newSqlCommand("Insertintostar(name)values(@name)",Connection,Transaction);Command.Parameters.AddWithValue("name",TextBox1.Text);Command.ExecuteNonQuery();Transaction.Commit();你看下SQL的帮助不就知道怎么写了么catch(SqlExceptionex){myTrans.Rollback();}你出错后直接回滚事务也没有个提示,当然出错了也不知道了
其他方案:
那我就不用事务了,那怎么直接写入到数据啊,老兄帮帮我好吗?
其他方案:
最直接?异常都不用捕获了,让它直接跳出来好了using(SqlConnectionConnection=newSqlConnection("Server=local;userid=;pwd=;database="))//连接字符串自己写完整{Connection.Open();SqlCommandCommand=newSqlCommand("Insertintostar(name)values(@name)",Connection,Transaction);Command.Parameters.AddWithValue("name",TextBox1.Text);Command.ExecuteNonQuery();}
其他方案:
错了,事务参数也去掉using(SqlConnectionConnection=newSqlConnection("Server=local;userid=;pwd=;database="))//连接字符串自己写完整{Connection.Open();SqlCommandCommand=newSqlCommand("Insertintostar(name)values(@name)",Connection);Command.Parameters.AddWithValue("name",TextBox1.Text);Command.ExecuteNonQuery();}
其他方案:
老兄啊错误1当前上下文中不存在名称“Transaction”啊。。。。啊。。。我受不了了