使用文本框获取数据库值

时间:2016-01-18 09:38:50

标签: c# sql

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");

        }

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

他们的实际名字应该输入表格而不是学生号码。但是这段代码不会这样做。它从文本框本身输入的学号中输入文本

1 个答案:

答案 0 :(得分:1)

@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命令的参数化查询。