使用文本框获取数据库值

本文关键字:数据库 获取 文本 | 更新日期: 2023-09-27 18:30:52

private void dosomething(String q)
    {
        try
        {
            cn.Open();
            cmd.CommandText = q;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        catch (Exception e)
        {
            cn.Close();
            MessageBox.Show(e.Message.ToString());
        }
    }
private void button2_Click(object sender, EventArgs e)
    {
 if (textBox1.Text == String.Empty || textBox3.Text == String.Empty)
        {
            MessageBox.Show("Please fill up all the textboxes");
        }
        else {
            string studentNo = textBox1.Text;
            string sql = "SELECT Name FROM StudentInfo where StudentNo=@student_no";
            using (var command = new SqlCommand(sql,cnn))
            {
                command.Parameters.Add("@student_no", SqlDbType.VarChar).Value = studentNo;
            }
            string q = "insert into Issue([Name],[Book_Title],[Date_Borrowed]) values('" + studentNo + "','" + textBox3.Text + "','" + DateTime.Now.ToString("M/d/yyyy") + "')";
            dosomething(q);
            MessageBox.Show("Success");
        }

我试图创建一个程序,学生将在文本框中输入他们的学生编号,然后输入的学生编号将他们的姓名存储在另一个与实际存储将在其中发生的表分开的表。

他们的实际姓名应该输入到表中,而不是学生编号。它输入文本框中输入的学生编号中的文本

使用文本框获取数据库值

正如@Soner指出的那样,您没有执行 SELECT 语句来获取Name

你应该得到喜欢Name;

string name = string.Empty;
using (var command = new SqlCommand(sql,cnn))
{
    command.Parameters.Add("@student_no", SqlDbType.VarChar).Value = studentNo;
    object returnValue = Command.ExecuteScalar();
    name = Convert.ToString(returnValue);
}

然后,此值应转到 INSERT 命令。

string q = "insert into Issue([Name],[Book_Title],[Date_Borrowed]) values('" + name + "','" + textBox3.Text + "','" + DateTime.Now.ToString("M/d/yyyy") + "')";
dosomething(q);

此外,请对 INSERT 命令使用参数化查询。