【问题标题】:set default column value for a specific column in dataGridView为 dataGridView 中的特定列设置默认列值
【发布时间】:2013-11-05 19:16:59
【问题描述】:

我在 GridView 中有一个列,在某些单元格中有一个值,而其他单元格的 NULL 表示为空,所以我需要为空单元格设置一个默认值,而不需要对有数据的单元格进行任何更改,表示我想将 NULL 值更改为某些数据的任何空单元格,让我们将其设置为“无数据”。 请帮忙,我该怎么做?

我通过下一个代码从 SQL 中获取数据

public void showVolunteers(int x)
    {
        SqlCommand com = new SqlCommand("SELECT [Vol_ID]as[م],[Vol_Name]as[الاسم],[Team_Info].[team_name]as[منتمي الى فريق],[Vol_Zone]as[المنطقة],[vol_street]as[الحي],case [Vol_Sex] when '0' then 'ذكر' when'1' then 'انثى' end as[الجنس],[Vol_Date_of_Birth]as[تاريخ الميلاد],[Vol_Home_Phone]as[هاتف المنزل],[Vol_Work_Phone]as[هاتف العمل],[Vol_Mobile1]as[جوال1],[Vol_Mobile2]as[جوال2],[Vol_Email]as[الايميل],[Vol_Job]as[الوظيفة],[Vol_Affiliation]as[جهةالعمل],case [vol_Education] when '0' then 'لايوجد' when '1' then 'ابتدائي' when '2' then 'اعدادي' when '3' then 'ثانوي' when '5' then 'دبلوم تقني' when '6' then 'دبلوم مهني' when '7' then 'جامعي' when '8' then 'ماجستير' when '9' then 'دكتوراه' end as [المستوى التعليمي], [vol_Education_Place]as[المؤسسة التعليمية], [vol_Education_Department]as[التخصص], case [vol_Interesting] when '0' then 'لا يوجد' when '1' then 'صــحــي' when '2' then 'إجتــــماعــي' when '3' then 'تـــعليــم' when '4' then 'تــدريـــب' end as[الإهـــتمام], [vol_Hours]as[عدد ساعات التطوع], [vol_Notes]as[مــلاحظــات] FROM [VolunteersAffairs].[dbo].[Personal_info] left join [team_info] on [Personal_Info].[team_id] =[Team_info].[team_id]", con);
        SqlDataAdapter da = new SqlDataAdapter();
        DataSet dats = new DataSet();
        da.SelectCommand = com;
        da.Fill(dats, "Personal_Info");
        dataGridViewX1.DataSource = dats.Tables["Personal_Info"];
    }

【问题讨论】:

    标签: c# datagridview sql-server-2008-r2


    【解决方案1】:

    注意:在问题中发布代码 sn-p 之前提供了答案...

    如果您通过执行查询来填充表,则应将转换应用于检索数据的 SQL。

    如果您通过代码或 GUI 填充列,则可以使用表的列 DefaultValue 属性,如下所示:DataColumn.DefaultValue Property

    另外,请考虑下面@varocarbas 提供的评论。

    【讨论】:

    • 他也可以使用DefaultCellStyle.NullValue属性。 dataGridViewX1.DefaultCellStyle.NullValue = "NO DATA"; 将处理所有空记录。我将其作为评论,因为您的回答还可以,但这似乎更准确地回答了 OP 想要什么。
    • @Emmad Kareem|请告诉我该怎么办?
    • @varocarbas|我只需要修改一个特定的列,而不是所有列中的所有 Null 单元格,只需要修改一个特定列,其中包含该列中的单元格。请告诉我好吗?
    • @AbdullahBahattab 啊!抱歉,那么最好使用这个:dataGridViewX1.Columns[ColIndex].DefaultCellStyle.NullValue = "NO DATA"; 但请记住 Emmad 在说什么;此外,这只处理空记录(DataGridView 认为是空的)。
    • @AbdullahBahattab 最好不要。我把它写成评论,因为 Emmad 的答案还可以,只需要一些补充(他应该用这些信息更新他的答案)。如前所述,我提出的代码只处理 DGV 理解的空值,也许您需要考虑更多的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多