Tag: sqlexception

sqldatetime溢出exceptionc#.NET

string con = ConfigurationManager.ConnectionStrings[“connectionString”].ConnectionString; SqlConnection cn = new SqlConnection(con); string insert_jobseeker = “INSERT INTO JobSeeker_Registration(Password,HintQuestion,Answer,Date)” + ” values (@Password,@HintQuestion,@Answer,@Date)”; SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.Text; cmd.CommandText = insert_jobseeker; cmd.Parameters.Add(new SqlParameter(“@Password”, SqlDbType.VarChar, 50)); cmd.Parameters[“@Password”].Value = txtPassword.Text; cmd.Parameters.Add(new SqlParameter(“@HintQuestion”, SqlDbType.VarChar, 50)); cmd.Parameters[“@HintQuestion”].Value = ddlQuestion.Text; cmd.Parameters.Add(new SqlParameter(“@Answer”, SqlDbType.VarChar, 50)); cmd.Parameters[“@Answer”].Value = txtAnswer.Text; **cmd.Parameters.Add(new […]

‘嵌套linq查询中的列名’无效

最后更新 经过大量的测试,我意识到,如果我在SQL 2000和SQL 2005上的相同数据集(在本例中为Northwind)表上运行相同的查询,我会得到两个不同的结果。 在SQL 2000上,我得到了问题中的错误。 在SQL 2005上,它成功了。 所以我得出结论,linqpad生成的查询在sql 2000上不起作用。要重现这一点,请运行: OrderDetails .GroupBy(x=>x.ProductID) .Select(x=>new {product_id = x.Key, max_quantity = x.OrderByDescending(y=>y.UnitPrice).FirstOrDefault().Quantity}).Dump(); 在sql 2000中的Northwind DB上.sql的翻译是: SELECT [t1].[ProductID] AS [product_id], ( SELECT [t3].[Quantity] FROM ( SELECT TOP 1 [t2].[Quantity] FROM [OrderDetails] AS [t2] WHERE [t1].[ProductID] = [t2].[ProductID] ORDER BY [t2].[UnitPrice] DESC ) AS [t3] ) AS [max_quantity] FROM ( […]

与localhost的SQL连接

我安装DENWER并在内置PhpMyAdmin的帮助下在localhost上创建数据库。 当我在我的C#应用​​程序中连接到数据库时,我得到“SQLexception未处理”。 不明白我的错误在哪里…… 码: SqlConnection connection = new SqlConnection(“Data Source=localhost; User Id=root; Password=; Initial Catalog=MyDB”); connection.Open();

SqlException:System.Data.SqlClient.SqlException(0x80131904)

我在C#中编写了一个代码,它在我的计算机上运行得很好,使用Windows 7(MS SQL Server 2008)但在Windows Vista(MS SQL Server 2005)中却没有。 我无法在第二台计算机上更改系统;)我正在使用Visual Studio 2010。 所以这是代码的一部分,来自我的类​​“obSQL”: private SqlConnection connection; public obSQL(string user, string pass, string instance, string dbdir) //sql server authentication { connection = new SqlConnection(); connection.ConnectionString = “user id=” + user + “;” + “password=” + pass + “;Data Source=” + instance + “;” + “Trusted_Connection=no;” + […]

SQL Server,C#:事务回滚的超时exception

我有一个奇怪的问题。 我有一个.NET程序,我的进程逻辑需要在SQL Server 2005数据库上运行一个长时间的事务(~20分钟)。 没关系,因为没有人并行访问数据库。 当出现问题时,应该回滚事务。 不常见且没有任何可见模式的DbTransaction对象上的Rollback()操作会抛出DbTransaction : 消息:“超时已到期。在操作完成之前已经过了超时时间,或者服务器没有响应。” 堆栈跟踪: 在System.Data.SqlClient.SqlInternalConnection.OnError(SqlExceptionexception,布尔breakConnection) 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 在System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj,UInt32错误) 在System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult,TdsParserStateObject stateObj) 在System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected) 在System.Data.SqlClient.TdsParserStateObject.ReadBuffer() 在System.Data.SqlClient.TdsParserStateObject.ReadByte() 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte [] buffer,TransactionManagerRequestType request,String transactionName,TransactionManagerIsolationLevel isoLevel,Int32 timeout,SqlInternalTransaction transaction,TdsParserStateObject stateObj,Boolean isDelegateControlRequest) 在System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest,String transactionName,IsolationLevel iso,SqlInternalTransaction internalTransaction,Boolean isDelegateControlRequest) 在System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest,String name,IsolationLevel iso,SqlInternalTransaction internalTransaction,Boolean isDelegateControlRequest) 在System.Data.SqlClient.SqlInternalTransaction.Rollback() 在System.Data.SqlClient.SqlTransaction.Rollback() 我不知道这是否真的是一个超时问题,因为代码有时会工作,有时候不会。 此外,我知道的唯一超时是ConnectionTimeout和CommandTimeout […]

获取导致SQLException的Query / CommandText

我有一个记录器,记录我们内部应用程序的exception信息。 当我们记录SQLexception时,如果我们能够看到导致exception的实际查询,那么它将非常有用。 有没有办法实现这个目标?

如何知道抛出SqlException的实际问题?

我想在处理数据库操作时处理不同的问题。 例如,由于数据库凭据错误或由于网络问题,操作可能会失败。 或者它可能会失败,因为查询不正确(如果在int类型列中传递字符串值) 在我的C#代码中,我们只有SqlErrors ,它包含SqlErrors集合。 但是有很多严重程度。 如何轻松识别SqlException的原因? 如何确定exception是由于连接问题或身份validation失败或由于查询问题。 我正在使用SQL Server 2005。