SQL Server 2008で実行されるいくつかのテーブルを持つデータベースがあり、クエリに提供されたクラスを使用して.NET 3.5でWindowsアプリケーションをプログラミングしていますサーバー。私はすべてのテーブルに一貫している "空白"の行が含まれているという問題を抱えています。「Ghost」行、SQL Server 2008 + .NET Windowsプログラミング
たとえば、DataGridViewをBindingSourceにバインドします.BindingSourceのデータソースは、データベースに接続するSqlDataAdapterによって構築されたテーブルです。DataGridに結果を表示します。 GetDataのは次のように定義されて
dataGridView->DataSource = bindingSource;
bindingSource->DataSource = GetData(
"Select * From xxxx", Get_DB_String(), dataAdapter);
:テーブルには、その中の1つのレコードを持ってい
DataTable^ GetData(
String^ sqlCommand,
String^ connectionString,
SqlDataAdapter^ adapter)
{
SqlConnection^ Connection = gcnew SqlConnection(connectionString);
SqlCommand^ command = gcnew SqlCommand(sqlCommand,Connection);
adapter->SelectCommand = command;
DataTable^ table = gcnew DataTable;
adapter->Fill(table);
return table;
}
、次のグリッドをそれが生成するものである:
私がチェックした場合table->Rows->Count
は、アダプターが表を塗りつぶした直後に、bindingSource->Count
と同様に1を生成します。ただし、rows->Count
をチェックすると、DataGridViewは2行を報告します。しかし、行が削除/削除することができない
:私はSQL Server Management Studioをロードし、私のテーブルを見れば今、私は次のビューを提示してい
行のセルの内容のいずれかを編集すると、NULL行全体が単純に追加されます。私はそれが私が気づいていないいくつかの目的のために設計されていると仮定しますが、私はまたこれが問題であることにつきました。
DataGridViewから明示的に行を削除しようとすると、「コミットされていない新しい行を削除できません」が返され、SqlDataAdapterでその行を削除することはできません。そこにいると報告しません。
この問題は、存在しないデータでバインドされたDataGridViewでルーチンを実行することができないため、アプリケーションの美しさだけでなく機能性も破壊されています。
私は自分の問題を伝えるのに十分簡潔であることを望みます。ありがとうございました。
ありがとうございます、そのプロパティを変更するとは思わなかったです。その余分なテーブルの行にぶら下がっていた。しかし、後見ではかなりの意味があります。 –