hi there, i have a invoice template that when printed has a box for the users address (which there always will be) and a box for their delivery address if they are having the items delivered. However sometimes they dont have things delivered and so the record in the delivery table does not exist. In this case it will throw an error, how can i avoid this. the code im using i have posted below
string sql ="SELECT [del_address], [del_post_code], [del_date], [del_time] From tbl_del WHERE order_ID = " + intOrderID;
//This creates a sql command which executes the sql statement.
SqlCommand sqlCmd =newSqlCommand(sql, myConn);myConn.Open();
SqlDataReader dr = sqlCmd.ExecuteReader();//This reads the first result from the sqlReader
dr.Read();
try
{
//string strDel_Address = dr["del_address"].ToString();
if (Convert.ToString(dr["del_charge"].ToString()) !=null)
{
//delivery items
lblDelAddy.Text = dr["del_address"].ToString();lblDelPCode.Text = dr["del_post_code"].ToString();
Instead of "dr.Read();" use "while (dr.Read())" If there is no record it wont even try to fill the items
while (dr.Read()){//Do something}|||
ah thank you, the problem though is that there is this line
if (Convert.ToString(dr["del_charge"].ToString()) !=null)
and several lines like it below which rely on it bringing something back, how could i change it so if it dosnt exist almost to not do anything?
|||When you usewhile (dr.Read()) if there are no records it will not go into that block of code. This will solve your problem, give it a try.
No comments:
Post a Comment