I am trying to dispaly database values based on the combobox selection and i get this error "Data is null. this method cannot be called on null values"
-
this is my code private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { if (connect.State == ConnectionState.Open) { connect.Close(); } connect.Open(); String query = "select * from V_General_Books where FileName= '" + FileNameComboBox.Text + "'";// '" + textBox2.Text + "' and UserName= '" + textBox3.Text + "' "; cmd = new SqlCommand(query, connect); dr = cmd.ExecuteReader(); if(dr.Read()) { string bookid = dr.GetInt32(10).ToString(); BookIDTextBox.Text = bookid; string generalid = dr.GetInt32(0).ToString(); GeneralIDTextBox.Text = generalid; string isbn = dr.GetString(12); ISBNTextBox.Text = isbn; string author = dr.GetString(11); AuthorNameTextBox.Text = author; string genre = dr.GetString(16); GenreTextBox.Text = genre; byte[] x = (byte[])dr[8]; MemoryStream ms = new MemoryStream(x); pictureBox1.Image = Image.FromStream(ms); string series = dr.GetString(15); SeriesTextBox.Text = series; string year = dr.GetString(14); YearOfPublicationTextBox.Text = year; string dateacquired = dr.GetString(9); DateAcquiredTextBox.Text = dateacquired; string filename = dr.GetString(1); FileNameTextBox.Text = filename; string filepath = dr.GetString(2); FilePathTextBox.Text = filepath; string length = dr.GetString(5); MediaLengthTextBox.Text = length; string type = dr.GetString(6); MediaTypeTextBox.Text = type; string subtype = dr.GetString(7); MediaSubTypeTextBox.Text = subtype; DateTime dateadded = dr.GetDateTime(4); DateAddedDateTimePicker.MaxDate = dateadded; string filesize
-
this is my code private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { if (connect.State == ConnectionState.Open) { connect.Close(); } connect.Open(); String query = "select * from V_General_Books where FileName= '" + FileNameComboBox.Text + "'";// '" + textBox2.Text + "' and UserName= '" + textBox3.Text + "' "; cmd = new SqlCommand(query, connect); dr = cmd.ExecuteReader(); if(dr.Read()) { string bookid = dr.GetInt32(10).ToString(); BookIDTextBox.Text = bookid; string generalid = dr.GetInt32(0).ToString(); GeneralIDTextBox.Text = generalid; string isbn = dr.GetString(12); ISBNTextBox.Text = isbn; string author = dr.GetString(11); AuthorNameTextBox.Text = author; string genre = dr.GetString(16); GenreTextBox.Text = genre; byte[] x = (byte[])dr[8]; MemoryStream ms = new MemoryStream(x); pictureBox1.Image = Image.FromStream(ms); string series = dr.GetString(15); SeriesTextBox.Text = series; string year = dr.GetString(14); YearOfPublicationTextBox.Text = year; string dateacquired = dr.GetString(9); DateAcquiredTextBox.Text = dateacquired; string filename = dr.GetString(1); FileNameTextBox.Text = filename; string filepath = dr.GetString(2); FilePathTextBox.Text = filepath; string length = dr.GetString(5); MediaLengthTextBox.Text = length; string type = dr.GetString(6); MediaTypeTextBox.Text = type; string subtype = dr.GetString(7); MediaSubTypeTextBox.Text = subtype; DateTime dateadded = dr.GetDateTime(4); DateAddedDateTimePicker.MaxDate = dateadded; string filesize
Check SQL query in SQL server query wizard. The problem is with the SQL query. Whatever the query you written is not fetching any data from database. That is the reason why it's saying no data available.
Cheers, Purna Chandra Rao.Ch
-
this is my code private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { if (connect.State == ConnectionState.Open) { connect.Close(); } connect.Open(); String query = "select * from V_General_Books where FileName= '" + FileNameComboBox.Text + "'";// '" + textBox2.Text + "' and UserName= '" + textBox3.Text + "' "; cmd = new SqlCommand(query, connect); dr = cmd.ExecuteReader(); if(dr.Read()) { string bookid = dr.GetInt32(10).ToString(); BookIDTextBox.Text = bookid; string generalid = dr.GetInt32(0).ToString(); GeneralIDTextBox.Text = generalid; string isbn = dr.GetString(12); ISBNTextBox.Text = isbn; string author = dr.GetString(11); AuthorNameTextBox.Text = author; string genre = dr.GetString(16); GenreTextBox.Text = genre; byte[] x = (byte[])dr[8]; MemoryStream ms = new MemoryStream(x); pictureBox1.Image = Image.FromStream(ms); string series = dr.GetString(15); SeriesTextBox.Text = series; string year = dr.GetString(14); YearOfPublicationTextBox.Text = year; string dateacquired = dr.GetString(9); DateAcquiredTextBox.Text = dateacquired; string filename = dr.GetString(1); FileNameTextBox.Text = filename; string filepath = dr.GetString(2); FilePathTextBox.Text = filepath; string length = dr.GetString(5); MediaLengthTextBox.Text = length; string type = dr.GetString(6); MediaTypeTextBox.Text = type; string subtype = dr.GetString(7); MediaSubTypeTextBox.Text = subtype; DateTime dateadded = dr.GetDateTime(4); DateAddedDateTimePicker.MaxDate = dateadded; string filesize
Firstly, you should not use string concatenation in your query string. Read http://bobby-tables.com/about.html[^], and use proper parameterised queries. Secondly, you need to check the result of
FileNameComboBox.Text
, and indeed, the remainder of that statement to verify that you have actiually created a valid query.Veni, vidi, abiit domum
-
this is my code private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { if (connect.State == ConnectionState.Open) { connect.Close(); } connect.Open(); String query = "select * from V_General_Books where FileName= '" + FileNameComboBox.Text + "'";// '" + textBox2.Text + "' and UserName= '" + textBox3.Text + "' "; cmd = new SqlCommand(query, connect); dr = cmd.ExecuteReader(); if(dr.Read()) { string bookid = dr.GetInt32(10).ToString(); BookIDTextBox.Text = bookid; string generalid = dr.GetInt32(0).ToString(); GeneralIDTextBox.Text = generalid; string isbn = dr.GetString(12); ISBNTextBox.Text = isbn; string author = dr.GetString(11); AuthorNameTextBox.Text = author; string genre = dr.GetString(16); GenreTextBox.Text = genre; byte[] x = (byte[])dr[8]; MemoryStream ms = new MemoryStream(x); pictureBox1.Image = Image.FromStream(ms); string series = dr.GetString(15); SeriesTextBox.Text = series; string year = dr.GetString(14); YearOfPublicationTextBox.Text = year; string dateacquired = dr.GetString(9); DateAcquiredTextBox.Text = dateacquired; string filename = dr.GetString(1); FileNameTextBox.Text = filename; string filepath = dr.GetString(2); FilePathTextBox.Text = filepath; string length = dr.GetString(5); MediaLengthTextBox.Text = length; string type = dr.GetString(6); MediaTypeTextBox.Text = type; string subtype = dr.GetString(7); MediaSubTypeTextBox.Text = subtype; DateTime dateadded = dr.GetDateTime(4); DateAddedDateTimePicker.MaxDate = dateadded; string filesize