【问题标题】:Populate TextBox with the Sql query that was ran使用已运行的 Sql 查询填充 TextBox
【发布时间】:2016-02-09 23:52:32
【问题描述】:

我有一个我认为应该很简单的请求,但由于某种原因我无法让它工作。我有一个按钮被单击并运行查询并填充我的datagridview。我想用运行的确切查询填充一个文本框,以便用户可以修改它。这是下面的代码。

private void SHTTBtn_Click(object sender, EventArgs e)
    {
        using (var myConnection = new SqlConnection(DBConnectionBox.Text))
        {
            var SHTTCmd = new SqlCommand("Do some SQL Command");
            SHTTCmd.Connection = myConnection;
            SHTTCmd.CommandType = CommandType.Text;
            SqlDataAdapter SqlSHTTAdap = new SqlDataAdapter(SHTTCmd);
            DataTable SHTTRecord = new DataTable();
            SqlSHTTAdap.Fill(SHTTRecord);
            ClientInfoDGV.DataSource = SHTTRecord;
            ManualQueryBox.Text = SHTTCmd.ToString();
        }      
    }

我在 ManualQueryBox.Text 中得到的结果是“System.Data.SqlClient.SqlCommand”

【问题讨论】:

  • “执行一些 SQL 命令”应该来自 TextBox.Text 属性。从大局来看,这是个坏主意。您正在为您的用户提供王国的钥匙,他们将能够删除表格等。改为提供用户过滤选项。
  • 连接字符串用于只读数据库。
  • 从您发布的代码中,尝试ManualQueryBox.Text = SHTTCmd.CommandText;
  • 漂亮!您应该将其作为答案提交,以便我接受。

标签: c# sql datagridview


【解决方案1】:

form_load 你会这样做:

ManualQueryBox.Text = "your sql command";

然后,在单击按钮后,您将执行以下操作:

var SHTTCmd = new SqlCommand(ManualQueryBox.Text);

当然,这完全不安全,具体取决于您要执行的操作。但这基本上就是您从文本框中获取查询的方式。

如果您只想从命令中获取查询文本,而不是

ManualQueryBox.Text = SHTTCmd.ToString();

你会的

ManualQueryBox.Text = SHTTCmd.CommandText;

【讨论】:

  • 但是我有多个带有多个 sql 查询的按钮。在表单加载时这样做也会在按钮被点击之前填充该文本框。我希望在单击按钮后填充它。我在文本框旁边有一个执行按钮,因此如果他们想更改任何内容,他们可以在之后以这种方式运行它。
猜你喜欢
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
相关资源
最近更新 更多