2

datagridview textbox に入力すると、次の行が自動的に生成されます。

それを止める方法は?

[挿入] ボタンをクリックすると、空の行もデータベースに保存されるため、行の自動生成を停止する方法を尋ねています。

テキスト行のみがデータベースに保存され、null または空の行はデータベースに保存されませんか??

 string StrQuery;
using (SqlConnection conn = new SqlConnection(connection string))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
conn.Open();
for(int i=0; i< dataGridView1.Rows.Count;i++)
{
StrQuery= @"INSERT INTO std VALUES ('"
+ dataGridView1.Rows[i].Cells["sname"].Value +"', '"
+ dataGridView1.Rows[i].Cells["class"].Value +"')";
comm.CommandText = StrQuery;
comm.ExecuteNonQuery();
}
}
}

ここに画像の説明を入力

4

1 に答える 1

4

AllowUserToAddRowsプロパティを false に設定します

しかし、あなたのコードによれば、あなたのforルックにチェックを入れて、セルの値がnullかどうかをこのようなものを使ってチェックする必要があります

        for(int i=0; i< dataGridView1.Rows.Count;i++) 
    { 
if (dataGridView1.Rows[i].Cells["sname"]!=null)
{
    StrQuery= @"INSERT INTO std VALUES ('" 
    + string.IsNullOrWhiteSpace(dataGridView1.Rows[i].Cells["sname"].Value) +"', '" 
    + string.IsNullOrWhiteSpace(dataGridView1.Rows[i].Cells["class"].Value) +"')"; 
    comm.CommandText = StrQuery; 
    comm.ExecuteNonQuery(); 
}
    } 

グリッドを停止して行を自動的に追加すると、手動で新しい行を挿入する必要があるためです。したがって、最善の方法は、グリッドにニュース行を追加させることです。ただし、null 値のチェックをコードに配置してください。

于 2012-07-20T11:52:29.297 に答える