gpt4 book ai didi

c# - SQLCommand.ExecuteReader() 不限于只读语句

转载 作者:行者123 更新时间:2023-11-30 13:21:00 25 4
gpt4 key购买 nike

很明显,ExecuteReader 用于只读,ExecuteNonQuery 用于事务。但出于某种原因,即使我使用 ExecuteReader,我仍然能够运行写入(插入、更新、删除)命令(在 textbox1 中键入)。我的代码有问题还是我误解了 ExecuteReader 的工作方式?

//MY CODE

string sqlStatement = textbox1.Text;

System.Data.SqlClient.SqlConnectionStringBuilder builder =
new System.Data.SqlClient.SqlConnectionStringBuilder();
builder.DataSource = ActiveServer;
builder.IntegratedSecurity = true;

System.Data.SqlClient.SqlConnection Connection = new
System.Data.SqlClient.SqlConnection(builder.ConnectionString);
Connection.Open();

System.Data.SqlClient.SqlCommand command = new
System.Data.SqlClient.SqlCommand(sqlStatement, Connection);
System.Data.SqlClient.SqlDataReader reader = command.ExecuteReader();

dataGridView1.AutoGenerateColumns = true;

bindingSource1.DataSource = reader;
dataGridView1.DataSource = bindingSource1;

reader.Close();
Connection.Close();

最佳答案

ExecuteReader 只是返回一个可以读取从 SQL 过程返回的行的读取器 - 它不会阻止您在提供该结果集的过程中运行任意 SQL。

执行插入/更新/删除然后立即返回结果集(因此从代码看起来像读取)可以说有点奇怪(阅读:代码味道),应该审查它是否可以分成不同的 Action 。

关于c# - SQLCommand.ExecuteReader() 不限于只读语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348012/

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