小白编写C#项目(主要为连接数据库和简单画图)

基于vs2012

2019-10-03

1.版本不支持直接在解决方案中下载,使用数据库需下载MySql.Data   在程序包管理器控制台里输入 

Install-Package MySql.Data -Version 6.7.9

2.存取数据库内容使用Dapper,版本不支持,在程序包管理器控制台里输入,在.NetFramework加载控件(.Form的)

Install-package dapper -Version 1.50.2

获取的数据(一行)如果包含多种类型(每列数据类型不都一样),可新建类库,把类库的名字作为新类型进行存取,新类中用到了C#的get和set,也就是ORM模式

private string apiTag;
private int vvalue;
public String ApiTag
        {
            get
            {
                return apiTag;
            }
            set
            {
                apiTag = value;
            }
        }

        public int Value
        {
            get
            {
                return vvalue;
            }
            set
            {
                vvalue = value;
            }
        }

3.可直接将List类型作为控件等的数据来源

dgHistory.ItemsSource = list;
AngleYValues = new List<int>();
AngleYValues = dataMapper.GetValueList("AngleY");
Values = new ChartValues<int>(AngleYValues),

4.更新数据需使用线程,创建子线程

Thread childThread1 = new Thread(updateThread);
            childThread1.Start();//子线程开始

其中updateThread为子线程要做的事件

public void updateThread()
        {           
            while (true)
            {
                Load();// 加载数据
                Thread.Sleep(4000);//线程停止4000ms
            }
        }

5.更新控件和其中的数据需回到主线程(可以这样理解,其实不是的)

dgHistory.Dispatcher.BeginInvoke(new Action(() =>   //更新数据和控件要回到主线程
            {
                dgHistory.ItemsSource = list;//不可放到外面
                dgHistory.Items.Refresh();
            }));

6.连接数据库用到的语句只有密码和数据库名称需要改(也就是后两个参数),注意不是表名

public static readonly string connectionString = "server=localhost;User Id=root;Password=123456;Database=sunpower;";

 2019-10-05

7.新窗口打不开,需要这样做

new Window1().Show();//先打开新的,再关闭这个,否则新窗口可能不出来
this.Close();

 2019-10-07

8.关于packages.config问题 未声明“packages”元素

 解决方法:

1).多次打开,可能可以运行

2).打开packages.config —XML(菜单中的)— 创建XML架构 

XML(菜单中的)—架构——打对勾,地址为C:\Users\xxx\AppData\Local\Temp

9.加载窗口需要根据条件改变控件的内容时

this.Dispatcher.BeginInvoke(
                new Action(
                    delegate
                    {
                        int i = int.Parse(MainBusiness.getPowerState().Value.ToString());
                        if (i == 1)
                        {

                            PowerStateStatus.Content = "已开启";
                        }
                        else
                        {
                            PowerStateStatus.Content = "已关闭";
                        }
                        int n = int.Parse(MainBusiness.getLight().Value.ToString());
                        LightStatus.Content = n;
                    }
                    )
                );

10.Keyword not supported.类型错误如果出现在数据库连接部分,可能是连接语句错误,是“server”不是“sever”

 11.将Slider的值设为整数(浮点数不能convert成整数),在xaml设计器中添加IsSnapToTickEnabled="True",为了使Slider和Textbox值一致,Text="{Binding ElementName=slidery,Path=Value,Mode=TwoWay}"

 即可,因Textbox数据来源已确定。

12。将连接数据库的DataGrid的空白列去掉:

在每列DataGridTextColumn中Width="100*"   值任意,窗体中还可以手动改变。

 

posted @ 2019-10-03 22:08  跟随者N号  阅读(959)  评论(0)    收藏  举报