大量のユーザー入力データを格納するデータベースを学習しています。SQL Server: "オープンで利用可能な接続が必要です"
私は、レコードをチェックし、私はどちらかjobCardExistingTable
かdigCardExisting
テーブルを使用している場合、彼らは正常に動作
新しい
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
}
を更新または作成するかを選択し、次のコードを、持っています。 - 私は両方を使用している場合は、私はエラーを取得する
が
オープンし、利用可能な接続を必要と私は(jobCard
とdigCard
方法に含まれている)最初のExecuteNonQuery
は、接続して何かをやっていることを前提としていこれを開いたままにすることはできますか、メソッドを呼び出すたびに新しいものを開く必要がありますか?とにかく私はこのことをどうにか間違ってやっているのでしょう...各メソッドはデータベース内で新しいテーブルを呼びます。
編集:問題の一部は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からコードを投稿できますか? –
編集しました、ありがとうのおかげで、私は今少なくとも1つの問題を実現しています – ferday