检查所选列的数据库中是否存在值ASP.NET C#

时间:2020-07-01 20:56:00

标签: sql asp.net sql-server

我要检查数据库中是否存在“ jin”。

但是我现在可以在ASP.NET中找到正确的标志。

我认为这意味着我在第二列的第一栏中找不到“ jin”,

我放了时间表。

我的代码不起作用..帮助我。

enter image description here

{{1}}

2 个答案:

答案 0 :(得分:0)

如果您要一次在所有列中搜索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(如果没有)。

答案 1 :(得分:0)

您可以直接在查询中包括对“ 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";