-1
cmd1.CommandText = "SELECT distinct MbrBtch from Member where MbrStrm='"+DrpDwnStrm .SelectedItem .Text +"'";
            cmd1.Connection = con;
            DataTable Table1;
            Table1 = new DataTable("mbr");
            DataRow Row1;
            DataColumn MbrBatch = new DataColumn("MbrBatch");
            MbrBatch.DataType = System.Type.GetType("System.Int32");
            Table1.Columns.Add(MbrBatch);
            try
            {
                con.Open();
                SqlDataReader RdrMbr = cmd1.ExecuteReader();
                while (RdrMbr.Read())
                {

                    Row1 = Table1.NewRow();
                    Row1["MbrBatch"] = Convert.ToInt32(RdrMbr.GetInt32(0));
                    Table1.Rows.Add(Row1);
                }
                RdrMbr.Close();
            }

            finally
            {
                con.Close();
            }
            DrpDwnBtch.DataSource = Table1;
            this.DrpDwnBtch.DataTextField = "MbrBatch";
            DrpDwnBtch.DataBind();

//here MbrBtch is numeric type attribute of sql server. 
4

2 回答 2

1

My guess would be the below line gives you an error.

Change the line

    Row1["MbrBatch"] = Convert.ToInt32(RdrMbr.GetInt32(0));

with

int mbr = 0;
if (Int32.TryParse(RdrMbr[0], out mbr))
   Row1["MbrBatch"] = mbr;
于 2012-04-27T17:15:54.277 回答
0

MbrBtch 列中是否可能存在空值?如果是这样,您需要像这样检查 null:

if (!RdrMbr.IsDBNull(0))
    Row1["MbrBatch"] = Convert.ToInt32(RdrMbr.GetInt32(0));
else
    // Set value to what it should be if null, perhaps a -1 or 0
于 2012-04-27T17:44:07.810 回答