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");
}
我试图创建一个程序,学生将在文本框中输入他们的学生编号,然后输入的学生编号将其名称存储在另一个表格中,该表格将与实际存储的表格分开。
他们的实际名字应该输入表格而不是学生号码。但是这段代码不会这样做。它从文本框本身输入的学号中输入文本
答案 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
命令的参数化查询。