vs2013 C# WPF 关于GridViewColumn绑定的问题

Sherlmes丶 2013-12-18 11:08:46

1.如上图,在ButtonDisplay_Click事件中连接数据库,然后把数据库 administrator表中对应的列的值赋值给对应变量。

2.如上图,把各个对应变量的值通过DisplayMemberBinding命令绑定在GridViewColumn。
3.如上图,添加信息按钮的Click=ButtonDisplay_Click,想要一按这个按钮界面中就出现数据库中对应表的信息,但是按下按钮没有反应,我觉得是绑定没有成功。程序没有错误能正常运行,本人初学,经验太少,希望能得到帮助,谢谢。
...全文
519 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sherlmes丶 2013-12-19
  • 打赏
  • 举报
回复
引用 5 楼 u011182647 的回复:
绑定的后台定义问题吧
初学者,谢谢帮助。
Sherlmes丶 2013-12-19
  • 打赏
  • 举报
回复
引用 6 楼 mjp1234airen4385 的回复:
这个界面,白瞎wpf这个工具了。
才看了3天,是做的不好,只是临时为做个课程设计需要而已,你给个我自己做的好看的界面让我开开眼界吧。
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
主要是你的listview没有绑定,修改成这样,加name,加绑定
 <ListView Name="lv" HorizontalContentAlignment="Center" Height="160" Margin="11,144,140,0" VerticalAlignment="Top" Width="770" ItemsSource="{Binding}">
后台数据:

DbHelper.GetConnectionString();
            DataTable dt = DbHelper.LoadDataTable("select ID,名称,tel,mail from administrator");
lv.ItemsSource = dt.DefaultView; 
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
DbHelper类
  public static string GetConnectionString()
        {
           return ("Data Source=.;Initial Catalog=test;User ID=sa;Password=sa");
        }
        public static DataTable LoadDataTable(string SqlText)
        {
            return LoadDataTable(SqlText, null);
        }

wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
后台:数据放在表中:

                DbHelper.GetConnectionString();
                DataTable dt = DbHelper.LoadDataTable("select ID,名称,tel,mail from tab_StationInfo");
                dataGrid1.ItemsSource = dt.DefaultView;
前台:
  <DataGrid.Columns >
                <DataGridTextColumn Header="ID" Binding="{Binding Path=ID}"/>
                <DataGridTextColumn Header="公司名称" Binding="{Binding Path=名称}"/>
                <DataGridTextColumn  Binding="{Binding Path=tel}" Header="电话" />
                <DataGridTextColumn Binding="{Binding Path=mail}" Header="Email"></DataGridTextColumn>
            </DataGrid.Columns>
mjp1234airen4385 2013-12-19
  • 打赏
  • 举报
回复
这个界面,白瞎wpf这个工具了。
小恒丶 2013-12-19
  • 打赏
  • 举报
回复
绑定的后台定义问题吧
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
放在load里看一下
Sherlmes丶 2013-12-19
  • 打赏
  • 举报
回复
引用 1 楼 wind_cloud2011 的回复:
ButtonDisplay_Click,这里数据都能取得?你把数据填到表里,再绑定,我给找个例子
我在窗口中加了一个Textbox控件, 然后在ButtonDisplay_Click事件中最后一行加入Textbox.text=adminno,调试运行的时候Textbox里出现了数据库表中对应列的最后一行数据,说明事件里的数据应该能取到,数据库表中我已经添加了数据,谢谢你的帮助。
Sherlmes丶 2013-12-19
  • 打赏
  • 举报
回复
我在窗口中加了一个Textbox控件, 然后在ButtonDisplay_Click事件中最后一行加入Textbox.text=adminno,调试运行的时候Textbox里出现了数据库表中对应列的最后一行数据,说明事件里的数据应该能取到,数据库表中我已经添加了数据,谢谢你的帮助。
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
ButtonDisplay_Click,这里数据都能取得?你把数据填到表里,再绑定,我给找个例子
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
这样也可

  private void button2_Click(object sender, RoutedEventArgs e)
            {               
                string connectionString = string.Format(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LaboratoryDatabase.mdf;Integrated Security=True;Connect Timeout=30");
                SqlConnection connection = new SqlConnection(connectionString);
                connection.Open();
                SqlDataAdapter sda = new SqlDataAdapter("select adminno,adminname,adminsex,adminage,admintel from administrator", connection);              
                DataTable dt = new DataTable();
                sda.Fill(dt);
                lvLeft.ItemsSource = dt.DefaultView;
                connection.Close();
            }
小恒丶 2013-12-19
  • 打赏
  • 举报
回复
这个是我刚学wpf时候写的 里面有点多余的 。。。
小恒丶 2013-12-19
  • 打赏
  • 举报
回复
前台代码
 <ListView Name="listView1" MinWidth="280">
            <ListView.ItemBindingGroup>
                <BindingGroup />
            </ListView.ItemBindingGroup>
            <ListView.View>

                <GridView x:Name="gridView1">

                    <GridViewColumn Header="用户名" DisplayMemberBinding="{Binding Path=yhm}"></GridViewColumn>

                    <GridViewColumn Header="密码" DisplayMemberBinding="{Binding Path=mm}"></GridViewColumn>

                    <GridViewColumn Header="代码 " DisplayMemberBinding="{Binding Path=bmdm}"></GridViewColumn>

                    <GridViewColumn Header=" ID" DisplayMemberBinding="{Binding Path=id}"></GridViewColumn>

                </GridView>

            </ListView.View>
        </ListView>
后台代码
  SqlDataAdapter sda;
        DataTable dt;
string connectionString = string.Format("Data Source=192.168.0.250;Initial Catalog=IBMS;user=sa;password=password;timeout=30;Max Pool Size=75;Min Pool Size=5");
            SqlConnection connection = new SqlConnection(connectionString);
            connection.Open();
            sda = new SqlDataAdapter("select yhm,mm,bmdm,id from yhxxb", connection);
            SqlCommandBuilder commbuilder = new SqlCommandBuilder(sda);
            sda.UpdateCommand = commbuilder.GetUpdateCommand();
            dt = new DataTable();
            sda.Fill(dt);
            listView1.ItemsSource = dt.DefaultView;
            connection.Close();
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
这个错误提示是不能连接到数据库
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
应该这样:你将数据库放在项目所在的目录下,
string ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LaboratoryDatabase.mdf;Integrated Security=True;Connect Timeout=30";
Sherlmes丶 2013-12-19
  • 打赏
  • 举报
回复
引用 23 楼 wind_cloud2011 的回复:
晕,用:
Sqlhelper.GetConnectionString();
                DataTable dt = Sqlhelper.LoadDataTable("select adminno,adminname,adminsex,adminage,admintel from administrator");                               
                lvLeft.ItemsSource = dt.DefaultView;
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
你这是一个小的数据库,用Data Source=(LocalDb)\v11.0;
wind_cloud2011 2013-12-19
  • 打赏
  • 举报
回复
晕,用:
Sqlhelper.GetConnectionString();
                DataTable dt = Sqlhelper.LoadDataTable("select adminno,adminname,adminsex,adminage,admintel from administrator");                               
                lvLeft.ItemsSource = dt.DefaultView;
Sherlmes丶 2013-12-19
  • 打赏
  • 举报
回复
引用 21 楼 wind_cloud2011 的回复:
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDB.mdf;Integrated Security=True;User Instance=True",这样就可以阿
这个方法我试过了 我们老师用VS 2010教我们得时候就是这样 但是我连接不了 还有就是提示上下文不存在datagrid1
加载更多回复(10)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧