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 程序的文本框中突出显示文本?
如何让虚拟键盘在 WinForms 应用程序的文本框中输入文本?