检查选择列 ASP.NET C# 的数据库中是不是存在值
Posted
技术标签:
【中文标题】检查选择列 ASP.NET C# 的数据库中是不是存在值【英文标题】:Check if value exists in the database which is selected column ASP.NET C#检查选择列 ASP.NET C# 的数据库中是否存在值 【发布时间】:2020-07-01 20:56:00 【问题描述】:我想检查数据库中是否存在“jin”。
但我现在可以在我的 ASP.NET 中找到真正的登录。
我认为这意味着我在第一列第二列中找不到“jin”,
我放了时间表。
我的代码不起作用..帮帮我。
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=IT\SQLEXPRESS;Initial Catalog=Gentl;Persist Security Info=True;User ID=sa;Password=sjin101!";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * From Time";
cmd.Connection = con;
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
if (rd[1].ToString() == "jin")
flag = true;
break;
if (flag == true)
TextBox1.Text = "Find";
else
TextBox1.Text = "no";
【问题讨论】:
显示的表格有名为“11:00AM”、“11:30AM”的列 - 对吗?我只是想知道您是否可以更改 cmd.CommandText 以便按名称选择所有列,以确保知道 rd[1] 的内容是什么 【参考方案1】:如果您想同时在所有列中搜索jin
,一种选择是将列取消转置为行,然后进行条件聚合:
select max(case when x.val = 'jin' then 1 else 0 end) found
from time t
cross apply (values
([11:00AM]),
([11:30AM]),
([12:00PM]),
([12:30PM]),
...
) x(val)
这会生成一个名为found
的标量结果集(单行和单列),如果该值存在于values()
行构造函数中列出的列中的任何位置,则包含1
,如果存在则包含0
没有。
【讨论】:
@SangYongJin:只要有可能,在数据库中进行计算总是更有效,而不是选择所有内容,然后在您的应用程序中循环...... @SangYongJin 。 . .您的问题带有两个数据库标签和 asp.net 标记。根本没有 C# 标签。我建议你接受这个答案。【参考方案2】:可以在查询中直接包含对“jin”的检查,一旦执行,就可以检查sqldatareader是否有行。
我只在下面的示例中包含了前两列,但您可以包含其余的列。
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=IT\SQLEXPRESS;Initial Catalog=Gentl;Persist
Security Info=True;User ID=sa;Password=sjin101!";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * From Time where 11:00AM= \"jin\" or 12:00AM = \"jin\"";
cmd.Connection = con;
SqlDataReader rd = cmd.ExecuteReader();
if(rd.HasRows())
TextBox1.Text = "Find";
else
TextBox1.Text = "no";
【讨论】:
以上是关于检查选择列 ASP.NET C# 的数据库中是不是存在值的主要内容,如果未能解决你的问题,请参考以下文章
使用 C# 在 ASP.NET 中检查 SQL Server 表中的列值是不是为空
如何确定在 C# ASP.NET CORE MVC 5.0 中选择了哪个单选按钮