-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

私の推測では、以下の行でエラーが発生します。

行を変更する

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

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

MbrBtch列にnull値がある可能性はありますか?その場合、次のように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 に答える