首页 > 解决方案 > 检查选择列 ASP.NET C# 的数据库中是否存在值

问题描述

我想检查数据库中是否存在“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";

标签: sqlasp.netsql-server

解决方案


如果您想一次在所有列中搜索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,其中包含1该值是否存在于values()行构造函数中列出的列中的任何位置,以及0是否不存在。


推荐阅读