Winforms中如何拆分文本框

Posted

技术标签:

【中文标题】Winforms中如何拆分文本框【英文标题】:How to split TextBox in Winforms 【发布时间】:2021-10-04 13:32:33 【问题描述】:

我正在尝试为此查询数据库在每行的开头和结尾还添加逗号,在每行中,或者我该怎么做,因为目前我只能在开头和结尾添加引号,但所有文本和逗号(如果也在结尾)

    SELECT TOP(500)  [contenido]
                FROM[Clientes].[dbo].[web]
      where sitios in ('https://www.google.com','https://www.youtube.com')

在数据库中它生成以下内容

contenido   - sitios
multimedia  - https://www.youtube.com
informacion - https://www.google.com

但在应用程序查询中没有引号 ' 和逗号给出错误

SELECT TOP(500)  [contenido]
                FROM[Clientes].[dbo].[web]
      where sitios in ('https://www.google.comhttps://www.youtube.com')

error 

这是我的代码

     new SqlDataAdapter(new SqlCommand(@"
SELECT TOP(500)  [contenido]
            FROM[Clientes].[dbo].[web]
  where sitios in ('"+textBox1.Text+"')", conexion.conectado())).Fill(dataTable);

【问题讨论】:

使用 SQL 参数来避免 SQL 注入和您的格式问题。 我是新来的,没有权限修改 bd 只搜索那怎么办? 【参考方案1】:

你可以试试这个吗?

        var urlList = textBox1.Text.Split(
             new[]  "\r\n", "\r", "\n" ,
            StringSplitOptions.None);

        string query = "SELECT TOP(500) FROM[Clientes].[dbo].[web] WHERE sitios in (0)";
        SqlCommand cmd = new SqlCommand(query, conexion.conectado());

        int index = 0;

        List<string> paramList = new List<string>();
        foreach (var url in urlList)
        
            if (!String.IsNullOrEmpty(url))
            
                cmd.Parameters.AddWithValue("@param" + index, url);
                paramList.Add("@param" + index);
                index++;
            
        

        cmd.CommandText = String.Format(query, String.Join(",", paramList));
        cmd.CommandTimeout = 99999;
        new SqlDataAdapter(cmd).Fill(dataTable);

此方法将解决您的问题,并且比您的代码更安全。

【讨论】:

谁使用@param1?我尝试在调试代码中得到这个 ('google.comhttps://www.youtube.com') @param1 = ' not cant get ('google.com','https://www.youtube.com') @ryuzdev 你需要两个参数

以上是关于Winforms中如何拆分文本框的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# Winforms 程序的文本框中突出显示文本?

c#winforms中所有文本框都不为空后如何启用按钮?

如何让虚拟键盘在 WinForms 应用程序的文本框中输入文本?

WinDBG:来自 WinForms 应用程序的内存转储 - 如何获取文本框的值

如何在 Winforms 桌面应用程序中制作自动完成文本框

如何将 winforms 中文本框(带有滚动条)的全文保存为图像?