gpt4 book ai didi

c# - 在c#中检查查询结果是否为null

转载 作者:行者123 更新时间:2023-11-30 21:22:19 25 4
gpt4 key购买 nike

你好我正在尝试创建一个验证来检查它是否是一个不成功的 SQL 查询 - 如果没有返回结果,它应该捕获这个错误并在屏幕上显示一条消息'没有找到客户端 ID 的记录:[number]'

我目前正在获取信息的查询如下。

protected void ClientSearchBtn_Click(object sender, EventArgs e)
{
//string ClientID = ClientIDTxt.Text;

//Database connection. Calls from web.config.
string MyConnectionString = ConfigurationManager.ConnectionStrings
["RCADSCONNECTION"].ConnectionString;

//SQL Connection
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = MyConnectionString;
//myConnection.Open();

//SQL string
try
{
SqlCommand cmd = new SqlCommand("SELECT CN.ClientID, CI.NNN, CN.GivenName1, CN.Surname, CI.DateOfBirth, CI.Gender FROM [RioOds].dbo.ClientIndex CI LEFT JOIN [RioOds].[dbo].[ClientName] CN ON CN.ClientID = CI.ClientID AND CN.AliasType = '1' AND CN.EndDate IS NULL WHERE CN.ClientID = @clientid", myConnection);
cmd.Parameters.Add("@clientid", SqlDbType.Int).Value = ClientIDTxt.Text;
myConnection.Open();

var reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();

while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
if (i != 0)
{
sb.Append(" | ");
}
sb.Append(reader[i].ToString());
}
sb.AppendLine();

ClientIDCell.Text = reader[0].ToString();
NNNCell.Text = reader[1].ToString();
FirstNameCell.Text = reader[2].ToString();
SurnameCell.Text = reader[3].ToString();
DobCell.Text = reader[4].ToString();
GenderCell.Text = reader[5].ToString();
}


//Show the results table
queryResultsTable.Visible = true;

ResultsLabel.Text = sb.ToString();

submitButton.Enabled = true;
resultsButton.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
myConnection.Close();
}

myConnection.Close();
}

我不确定如何进行此操作。我确实理解它会是一个 if 语句,但不确定如何将返回 null 的 sql 查询进行比较。

最佳答案

reader.Read() 如果有更多行要读取,则返回 true。第一次只有当它为 false 时才意味着 reader 没有数据。

         if(!reader.Read())
//Your message
else
{
do
{
for (int i = 0; i < reader.FieldCount; i++)
{
if (i != 0)
{
sb.Append(" | ");
}
sb.Append(reader[i].ToString());
}
sb.AppendLine();

ClientIDCell.Text = reader[0].ToString();
NNNCell.Text = reader[1].ToString();
FirstNameCell.Text = reader[2].ToString();
SurnameCell.Text = reader[3].ToString();
DobCell.Text = reader[4].ToString();
GenderCell.Text = reader[5].ToString();
} while (reader.Read());
}

另一种选择是检查阅读器上的属性 HasRows。当其中有数据时,这是真的。

if(!reader.HasRows)
//Your error message goes from here
else
//Do your stuff

关于c# - 在c#中检查查询结果是否为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com