我只是在學習數據庫來存儲(大量)用戶輸入數據。SQL Server:「需要開放和可用的連接」
我有下面的代碼,檢查記錄,並選擇是否更新或創建新的
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sc1 = @"select count(*) from job1 where report = @report";
SqlCommand check = new SqlCommand(sc1, connection);
check.Parameters.AddWithValue("@report", jname);
// check if the report number already exists, if not make a new table otherwise insert
int test = (int)check.ExecuteScalar();
if (test > 0)
{
jobCardExistingTable(connection);
digCardExistingTable(connection);
//insert into existing table code
}
如果我請使用jobCardExistingTable
或digCardExisting
表,但做工精細。如果我同時使用,我得到的錯誤
需要開放和可用的連接
我認爲第一ExecuteNonQuery
(其中包含在jobCard
和digCard
方法)是做與連接東西 - 我可以保持這一個開放,或者我每次打電話時都必須打開一個新的方法嗎?也許我這樣做是不對的......每種方法都在數據庫中調用一個新表,我應該一次全部調用它們嗎?
編輯:問題的一部分是jobCardTable(digCardTable是相同的,只是不同的查詢)
public void jobCardNewTable(SqlConnection connection)
{
using (connection)
{
string sc3 = "";
sc3 = @"INSERT INTO job1 (" + pv.jobstring + ") VALUES (" + pv.jobparam + ")";
SqlCommand cmd = new SqlCommand(sc3, connection);
queryParams(cmd, 0);
cmd.ExecuteNonQuery();
}
}
編輯:解決 - 意識到,使用{}部署的連接。把所有的using{}
出來的方法,以及使用單一using{}
涵蓋所有的方法調用和它的作品
'jobCardExistingTable'內發生了什麼? –
您可以發佈jobCardExistingTable和digCardExistingTable中的代碼嗎? –
編輯,感謝提問,至少現在我意識到一個問題 – ferday