[英]TCP error on a C#.Net application with SQL Server 2008 on the backend
我已經使用C#、. Net和SQL Server作為數據庫工具制作了一個應用程序。
今天,我在多用戶環境中運行它。 我將SQL Server托管在服務器上,並在客戶端計算機上安裝了該應用程序。 最初它工作正常,但一段時間后出現錯誤消息。 錯誤的屏幕截圖如下。
我使用此代碼創建了連接字符串-
class SqlConnDAC
{
public static SqlConnection CreateConn()
{
SqlConnection con = new SqlConnection(@"Data Source=XXX.XXX.X.XXX\SQLEXPRESS;Initial Catalog=TrulyDB;User ID=sa;Password=XXXXXXXX");
return con;
}
}
我使用以下代碼將數據插入到OCF表中-
public string OCF_EntryDB_Commerce(OCF_BO formDb)
{
try
{
string intOCF=formDb.OCF_Cont_No;
SqlConnection con = SqlConnDAC.CreateConn();
SqlDataAdapter sda = new SqlDataAdapter("select * from OCF_Commerce", con);
DataSet ds = new DataSet();
sda.Fill(ds, "OCF_Commerce");
DataTable dt = ds.Tables["OCF_Commerce"];
DataRow dr = dt.NewRow();
dr[0] = formDb.OCF_Cont_No;
dr[1] = formDb.Customer_Name;
dr[2] = formDb.Order_Cont_Type;
dr[3] = formDb.Book_No;
dr[4] = formDb.Area_To_Be_Served;
dr[5] = Convert.ToInt32(formDb.No_of_Floor);
dr[6] = formDb.Type_Of_Premisses;
dr[7] = formDb.Phone_Number;
dr[8] = formDb.Email_ID;
dr[9] = formDb.Adress;
dr[10] = formDb.Adress_To_be_serverd;
dr[11] = Convert.ToInt32(formDb.Cont_Value);
dr[12] = Convert.ToInt32(formDb.Cont_Tax);
dr[13] = Convert.ToInt32(formDb.Total);
dr[14] = formDb.Cont_Date;
dr[15] = formDb.Cont_Month;
dr[16] = formDb.Cont_Year;
dr[17] = formDb.Service_Start_Date;
dr[18] = formDb.Service_Start_Month;
dr[19] = formDb.Service_Start_Year;
dr[20] = formDb.Cont_Period_From;
dr[21] = formDb.Cont_Period_From_MM;
dr[22] = formDb.Cont_Period_From_YY;
dr[23] = formDb.Cont_Period_To;
dr[24] = formDb.Cont_Period_To_MM;
dr[25] = formDb.Cont_Period_To_YY;
dr[26] = formDb.TermsOfPayments;
if (formDb.TypeOfSite == "SingleSite")
{
intOCF = formDb.OCF_Cont_No;
}
else if (formDb.TypeOfSite == "MultipleSite")
{
intOCF = GenerateInt_OCF(formDb.OCF_Cont_No);
}
dr[27] = intOCF;
dr[28] = formDb.OperatingBranch;
OCF_Int_ID.internalOCF = intOCF;
dt.Rows.Add(dr);
SqlCommandBuilder sbil = new SqlCommandBuilder(sda);
sda.Update(dt);
return ("\nDone - and internal OCF number for "+formDb.Adress_To_be_serverd+" ="+intOCF+" \n");
}
}
我的第一個想法是您遇到了網絡問題。 但是還有其他原因,例如SQL請求過多等。請查看Microsoft technet
就像有關SQL的一些建議可以幫助您省去一番煩惱一樣:您正在使用select *,然后按照它們返回的順序來讀取字段。如果您計划對產品進行任何升級,請查看將值取回使用字段名稱,這樣,當您添加或刪除或更改字段時,代碼不會中斷。 還有一個問題,那就是select *必須命中master數據庫以獲取字段列表,這對性能影響不大,但是如果master忙於其中的很多事情,它可能會成為瓶頸,或者更糟糕的是仍然被鎖定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.