【发布时间】:2016-01-14 02:37:52
【问题描述】:
我正在尝试使用 C# 将多行插入 MS SQL 服务器。我的代码将一个值插入数据库,但随后引发异常。 我是 C# 新手,不胜感激。
我正在使用的代码:
private int InsertDataintoDB()
{
var dbConnection = new DBConnection();
UserAppList userAppList = new UserAppList();
userAppList.initList();
var sqlString = "Insert into dbo.[OneSiteUserAccess](UserType, ApplicationCode) values(@appuserType,@appCode)";
string connectionString = dbConnection.GetLASCentralWriterConnectionString();
SqlConnection sqlConnection = new SqlConnection(connectionString);
int rowsAffected = 0;
List<USerType_AndAppCode> mylist = userAppList.myList;
try
{
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = CommandType.Text;
sqlCommand.CommandText = sqlString;
sqlConnection.OpenAsync();
mytextArea.Append(sqlConnection.ConnectionTimeout.ToString());
foreach (var user in mylist)
{
sqlCommand.Parameters.AddWithValue("@appuserType", user.UserType);
sqlCommand.Parameters.AddWithValue("@appCode", user.AppCode);
sqlCommand.ExecuteNonQuery();
rowsAffected++;
}
sqlConnection.Close();
}
catch (SqlException e)
{
Console.WriteLine(e.StackTrace);
mytextArea.Append(e.StackTrace);
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace); mytextArea.Append(e.StackTrace);
}
return rowsAffected;
}
}
我遇到的错误
System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection, Action
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler、SqlDataReader 数据流、 BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior,字符串 resetOptionsString) 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior runBehavior、布尔 returnStream、布尔 异步,Int32 超时,任务和任务,布尔 asyncWrite,SqlDataReader ds) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法,TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 完成,字符串方法名,布尔型 sendToPipe,Int32 超时, 布尔 asyncWrite) 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 WebApplication_EmptyWebApp1.UserData.InsertDataintoDB() 在 c:\Users\csaini\Documents\Visual Studio 2012\Projects\WebApplication_EmptyWebApp1\WebApplication_EmptyWebApp1\UserData.aspx.cs:line 插入 120 行:1块引用
【问题讨论】:
-
你为什么使用 OpenAsync ?普通的旧 Open 会做。
标签: c# asp.net .net sql-server database