gpt4 book ai didi

c# - 使用 sql 连接的最佳/标准方法是什么?

转载 作者:行者123 更新时间:2023-11-30 19:42:43 26 4
gpt4 key购买 nike

protected void populateDataGrid()
{
string connectionString = configurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
string command = "select * from student";

SqlDataAdapter dataAdapter = new SqlDataAdapter(command, connectionString);
DataSet data = new DataSet();

dataAdapter.Fill(data);
GridView1.DataSource = data;
GridView1.DataBind();
}

protected void Button2_Click(object sender, EventArgs e)
{
string connectionString = ConfigurationManager.ConnectionStrings["sqlstudentConnectionString"].ConnectionString;
string command = @"INSERT INTO [student] (studentID, studentFirstName, studentLastName)
VALUES (" + TextID.Text + ", '" + TextFirstName.Text + "', '" + TextLastName.Text + "')";
SqlConnection sqlConnection = new SqlConnection(connectionString);

SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = command;
cmd.Connection = sqlConnection;

sqlConnection.Open();
cmd.ExecuteNonQuery();
sqlConnection.Close();

TextID.Text = "";
TextFirstName.Text = "";
TextLastName.Text = "";
populateDataGrid();
}

第一个函数获取所有表数据并将其转储到 GridView 。第二个函数接受输入并将其插入数据库。如何浓缩或简化这些功能?

最佳答案

How can these functions be condensed or simplified?

在简化之前,我会专注于正确性。目前我至少可以看到代码有两个问题:

  • 您应该绝对使用参数化 SQL,而不是将值放入 SQL 本身。您当前的代码容易受到 SQL 注入(inject)攻击。
  • 您应该使用 using 语句,这样即使抛出异常,连接和命令也会自动关闭。

那么在简化方面:

  • 您可以使用接受文本和连接的 SqlCommand 构造函数 - 类型默认为 Text
  • 我个人会尝试将 UI 代码与存储代码分开,至少对于一个重要的项目。您应该查看 ASP.NET MVC,至少了解一些分离的概念,即使您不更改以开始使用它也是如此。

关于c# - 使用 sql 连接的最佳/标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com