从数据库中删除数据网格上的选定记录 [英] Delete selected record on datagrid from database
本文介绍了从数据库中删除数据网格上的选定记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好:
我正在尝试使用datagrid列来选择要删除的记录。我在C#上练习了,但我需要帮助在VB上工作。
这是我的代码:
列表与LT; INT> rowsToDelete = new List< int>();
使用(SqlConnection conn = new SqlConnection( connString))
{
使用(SqlCommand cmd = new SqlCommand())
{
foreach (DataGridViewRow row dataGridView1.Rows)
{
DataGridViewCheckBoxCell checkBox = dataGridView1 [ 0 ,row.Index] as DataGridViewCheckBoxCell;
if (checkBox!= null ) / / 检查正确的行是否为checkboxcell
{
if ( Convert.ToBoolean(checkBox.Value)== true ) // 检查是否添加了勾号
{
// 从数据库中删除:
cmd.CommandText = @ DELETE FROM Stock WHERE ID = @myID;
cmd.Parameters.Add( @ myID,SqlDbType.Int).Value = Convert.ToInt32(dataGridView1 [ 1 ,row.Index] .Value.ToString());
cmd.ExecuteNonQuery(); // 从db中删除当前行
// 从DGV中删除(现在添加到列表中,然后删除它):
rowsToDelete.Add(row.Index );
}
}
}
}
}
// < span class =code-comment>从DGV删除行:
foreach ( int row in rowsToDelete)
dataGridView1.Rows.RemoveAt(row);
Is有一个等价的VB?
解决方案
使用在线翻译工具...
Dim rowsToDelete As List( Of 整数)= 新列表( 整数)
进口(
Dim conn As SqlConnection = 新 SqlConnection( connString)
如果(不(checkBox) Nothing )然后
如果(转换。 ToBoolean(checkBox.Value)= true )然后
' 从数据库中删除:
cmd.CommandText = DELETE FROM Stock WHERE ID = @myID
cmd.Parameters.Add( @ myID,SqlDbType.Int).Value = Convert.ToInt32(dataGridView1( 1 ,row.Index).Value。 ToString)
cmd.ExecuteNonQuery
' 从db中删除当前行
' 从DGV中删除(现在添加到列表中,然后删除它):
rowsToDelete.Add(row.Index)
结束 如果
结束 如果
UnknownUnknownUnknown ' 从DGV删除行:
对于 每个行作为 整数 在 rowsToDelete
dataGridView1.Rows.RemoveAt(row)
下一步
您可以使用 [Developer Vi将C#转换为VB.NET [ ^ ]。
Hello:
I am trying to use a datagrid column to select records to delete. I worked it out on C#, but I need help working it on VB.
Here is my code:
List<int> rowsToDelete = new List<int>();
using (SqlConnection conn = new SqlConnection("connString"))
{
using (SqlCommand cmd = new SqlCommand())
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewCheckBoxCell checkBox = dataGridView1[0, row.Index] as DataGridViewCheckBoxCell;
if (checkBox != null) //checking if correct row is checkboxcell
{
if (Convert.ToBoolean(checkBox.Value) == true)//checking if tick is added
{
//deleting from DB:
cmd.CommandText = @"DELETE FROM Stock WHERE ID = @myID";
cmd.Parameters.Add("@myID", SqlDbType.Int).Value = Convert.ToInt32(dataGridView1[1, row.Index].Value.ToString());
cmd.ExecuteNonQuery(); //deleting current row from db
//deleting from DGV (now adding into a list, and deleting it afterwards):
rowsToDelete.Add(row.Index);
}
}
}
}
}
//deleting rows from DGV:
foreach (int row in rowsToDelete)
dataGridView1.Rows.RemoveAt(row);
Is there an equivalent to VB?
解决方案
Using an online translation tool ...
Dim rowsToDelete As List(Of Integer) = New List(Of Integer) Imports ( Dim conn As SqlConnection = New SqlConnection("connString") If (Not (checkBox) Is Nothing) Then If (Convert.ToBoolean(checkBox.Value) = true) Then 'deleting from DB: cmd.CommandText = "DELETE FROM Stock WHERE ID = @myID" cmd.Parameters.Add("@myID", SqlDbType.Int).Value = Convert.ToInt32(dataGridView1(1, row.Index).Value.ToString) cmd.ExecuteNonQuery 'deleting current row from db 'deleting from DGV (now adding into a list, and deleting it afterwards): rowsToDelete.Add(row.Index) End If End If UnknownUnknownUnknown'deleting rows from DGV: For Each row As Integer In rowsToDelete dataGridView1.Rows.RemoveAt(row) Next
You can use [Developer Vision] Convert C# to VB.NET[^].
这篇关于从数据库中删除数据网格上的选定记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文