SqlCommand 是添加、删除和更新记录的唯一方法吗?



我目前正在创建一个具有 4 个按钮的 Windows 窗体应用程序,一个更新、添加、删除和取消按钮。我在记录中拥有的信息直接进入我的文本框,并且我使用了SqlCommand cmd;

我已经在我的添加按钮单击处理程序中添加了这个:

private void btnAdd_Click(object sender, EventArgs e)
{
if (true)
{
Utilities.ResetAllControls(this);
connection.Open();
cmd = new SqlCommand("insert into tblCar values('" + txtbxVehicleRegistrationNumber.Text + "','" + txtbxMake.Text + "','" + txtbxEngineSize.Text + "','" + txtbxDateRegistered + "','" + txtbxRentalPerDay + "','" + CbxAvailable.Checked + "')", connection);
MessageBox.Show("Your information has been successfully added.");
connection.Close();
}
}

列出的Utilities是我创建的类。这是我添加数据的正确方法吗?我还想知道如何(单击"添加"按钮后(从文本框中清除所有现有数据(但不删除它们(以添加新数据。如果有人帮助我解决我的这种困境,我将不胜感激。

Utilities类是:

public class Utilities
{
public static void ResetAllControls(Control form)
{
foreach (Control control in form.Controls)
{
if (control is TextBox)
{
TextBox textBox = (TextBox)control;
textBox.Text = null;
}
if (control is ComboBox)
{
ComboBox comboBox = (ComboBox)control;
if (comboBox.Items.Count > 0)
comboBox.SelectedIndex = 0;
}
if (control is CheckBox)
{
CheckBox checkBox = (CheckBox)control;
checkBox.Checked = false;
}
if (control is ListBox)
{
ListBox listBox = (ListBox)control;
listBox.ClearSelected();
}
}
}
}

你的代码对我来说似乎很好,我不确定你的确切问题是什么; 但是,要清除TextBox控件的.Text属性; 为其分配值string.Empty

textBox1.Text = string.Empty;

就您的插入命令而言,这看起来不错。有人指出,你的代码容易受到SQL注入的影响,但除非你需要保护你的信息,否则我不会太担心。如果您担心SQL注入以及如何防范它,这里有许多帖子,以及许多关于如何保护您的应用程序免受此类攻击的在线文章。要研究的事项是:

  • 动态数据和查询的参数化。
  • 不要过度使用动态生成的查询。
  • 在执行动态查询时利用sp_executesql,以便无法操作参数。

最新更新