使用 C# 中的 SQL 控制正确输入
本文关键字:输入 控制 SQL 中的 使用 | 更新日期: 2023-09-27 18:30:44
txtBox2.Enabled = false;
//made by francisco juliao
Convert.ToInt32(txtBox1.Text);
int Ticket = Convert.ToInt32(txtBox1.Text);
SqlConnection mySC = new SqlConnection();
SqlCommand com = new SqlCommand();
mySC.ConnectionString = ("Data Source=localhost;Initial Catalog=RCA;Integrated Security=True");
mySC.Open();
com.Connection = mySC;
com.CommandText = (@"SELECT Ticketid * FROM RCA)
VALUES ('" + txtBox1.Text + "','" + output+ "');");
mySC.Close();
if (Ticket = //SQL ticketID check here.
txtBox2.Enabled = true;
MessageBox.Show("Valid ID! Input email now.");
label1.Text = "Enter your email now.";
}
else
{
MessageBox.Show("Incorrect!");
}
因此,我希望我的 C# 应用程序检查用户键入的ticketID(txtBox1.Text)
是否在 SQL 服务器中。我不知道我会怎么做。如果输入正确,则标签会更改,textbox2
将启用。如果在 sql 数据库中找不到该电子邮件,则会显示一个消息框,其中包含文本"不正确!任何帮助将不胜感激!
您应该更改文本框1的"失去焦点"事件上的代码,即您的TicketID文本框。
那看起来像这样
private void txtBox1_LostFocus(object sender, RoutedEventArgs e)
{
SqlConnection mySC = new SqlConnection();
SqlDataReader reader;
mySC.ConnectionString = ("Data Source=localhost;Initial Catalog=RCA;Integrated Security=True");
mySC.Open();
string sql = @"SELECT * FROM RCA Where Ticketid = @tktid;";
using(var command = new SqlCommand(sql, mySC))
{
command.Parameters.Add("@tktid", txtBox1.Text);
reader = command.ExecuteReader();
}
if(reader.HasRows)
{
//Here you change the Label with LabelName I have used string to show.
string Lbllabel = "Change";
txtEmail.IsEnabled = true;
}
mySC.Close();
}
现在要检查电子邮件,您应该在TxtEmail_LostFocus上使用相同的内容
private void txtEmail_LostFocus(object sender, RoutedEventArgs e)
{
SqlConnection mySC = new SqlConnection();
SqlDataReader reader;
mySC.ConnectionString = ("Data Source=localhost;Initial Catalog=RCA;Integrated Security=True");
mySC.Open();
string sql = @"SELECT * FROM RCA Where EmailID = @emailid;";
using(var command = new SqlCommand(sql, mySC))
{
command.Parameters.Add("@emailid", txtEmail.Text);
reader = command.ExecuteReader();
}
if(reader.HasRows)
{
//Email Exsist in the dataBase.
}
else
{
MessageBox("Incorrect!!");
}
mySC.Close();
}
首先,您将文本转换为 int
Convert.ToInt32(txtBox1.Text);
但是你对结果什么都不做!?例如,像这样:
int a = Convert.ToInt32(txtBox1.Text);
使用 Convert.toInt32() 不会更改文本框中的任何内容。它只是获取文本的字符串并将其转换为 int。
如果要通过检查条目是否为数字来验证条目,可以执行以下操作:
try{
int a = Convert.ToInt32(txtBox1.Text);
}
catch{
// error, txtBox1.Text could not be converted to int (it contains letters)
}
要查询 ticketID 是否在表中,请执行如下 sql 语句:
cmd.Commandtext = "SELECT Count(*) FROM RCA WHERE ticketID = '" + txtBox.text + "'";
之后,您可以像查询一样执行它,并在读取器中保护结果
SqlDataReader reader = cmd.ExecuteReader();
比你从读者那里阅读结果,看看是否有匹配
。或者你可以像Mohit Shrivastava说的那样去做。非常漂亮和闪亮!:D