PDA

View Full Version : مشکل غیر عادی در آپدیت داده طولانی در SQL Server با C#‎



sohelo0
جمعه 10 آذر 1391, 15:17 عصر
سلام
مشکل خیلی عجیب هست خلاصه میگم
یه فرم ساختم که 4 تا فیلد تاریخ- شماره- متن- کاربر داره و وقتی 5 تا رکورد با متن حدود 2000 کاراکتر به دیتابیس اینسرت می کنم دیگه نمی تونم آپدیت کنم و اروری که میده اینه:

System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlExc eption exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndW arning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQuer yTds(String methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNo nQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)



at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

هرچی گشتم همه جا میگفتم که connection time out رو 0 یا 60 یا 4000 بزارم درست میشه ولی نشد
با ادیتور اsql server managment هم همین ارور رو میداد ولی یهو خودش درست شد و کار کرد، ولی با quary همون ارور رو داد
برنامه تحت شبکه هست و نکته جالب این هست که وقتی با سیستم های 64BIT دیگه می خوام آپدیت کنم مشکلی پیش نمیاد با سیستم های 32BIt هم آپدیت میکنه ولی خیلی هنگ و آروم انجام میشه و فقط با خود سرور که sql server روش نصب هست این ارور رو میده
نوع فرمت ستون توی دیتابیس Ntext , navrchar(max), navarchar(4000) تست کردم ولی فرقی نکرد
کد کانکت:


private SqlConnection myConnection;
private SqlDataReader sdr;
myConnection = new SqlConnection(@"Data Source=server\ap;Initial Catalog=1;User ID=sa;Password=*****;TrustServerCertificate=True;P ooling=true; Max Pool Size=200000000");
myConnection.Open();
SqlCommand myCommand = new SqlCommand(DbQuary, myConnection);
//sdr = myCommand.ExecuteReader();
myCommand.ExecuteReader();
myConnection.Close();


کد آپدیت:

"update tbl set date='" + date + "', code='" + code+ "',description=N'" +description+ "', user='" + user+ "' where id='" + pzlDGV.selectedRow.Cells[0].Value + "'";


در ضمن آگه ستون description رو از کد آپدیت حذف کنم هم با همین ارور رو میده یعنی حتی اگه بخوام تاریخ اون رکرود رو هم عوض کنم نمیشه

ممنون میشم راهنمایی کنین که این مشکل timeout expired و کندی و هنگ بودن این قسمت روی سیستم های 32BIT رو چه جوری حل کنم