zoukankan      html  css  js  c++  java
  • 用BindingSource将Windows窗体控件绑定到DBNull数据库值

    https://docs.microsoft.com/en-us/dotnet/desktop/winforms/controls/how-to-bind-windows-forms-controls-to-dbnull-database-values?view=netframeworkdesktop-4.8

    当您将Windows Forms控件绑定到数据源并且数据源返回DBNull值时,您可以替换适当的值而无需处理,格式化或解析事件。格式化或解析数据源值时,NullValue属性会将DBNull转换为指定的对象。

    例子

    下面的示例演示如何在两种不同的情况下绑定DBNull值。第一个演示了如何为字符串属性设置NullValue第二个示例演示如何为图像属性设置NullValue

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                this.Load += new EventHandler(Form1_Load);
            }
    
            // The controls and components we need for the form.
            private Button button1;
            private PictureBox pictureBox1;
            private BindingSource bindingSource1;
            private TextBox textBox1;
            private TextBox textBox2;
    
            DataTable employeeTable = new DataTable();//保存数据
    
            void Form1_Load(object sender, EventArgs e)
            {
                // Basic form setup.
                this.pictureBox1 = new PictureBox();
                this.bindingSource1 = new BindingSource();
                this.textBox1 = new TextBox();
                this.textBox2 = new TextBox();
                this.button1 = new Button();
                this.pictureBox1.Location = new System.Drawing.Point(20, 20);
                this.pictureBox1.Size = new System.Drawing.Size(174, 179);
                this.textBox1.Location = new System.Drawing.Point(25, 215);
                this.textBox1.ReadOnly = true;
                this.textBox2.Location = new System.Drawing.Point(25, 241);
                this.textBox2.ReadOnly = true;
                this.button1.Location = new System.Drawing.Point(200, 103);
                this.button1.Text = "Move Next";
                this.button1.Click += new System.EventHandler(this.button1_Click);
                this.ClientSize = new System.Drawing.Size(292, 273);
                this.Controls.Add(this.button1);
                this.Controls.Add(this.textBox2);
                this.Controls.Add(this.textBox1);
                this.Controls.Add(this.pictureBox1);
                this.ResumeLayout(false);
                this.PerformLayout();
    
                // Create the connection string and populate the data table
                // with data.
                string connectionString = "Integrated Security=SSPI;" +
                    "Persist Security Info = False;Initial Catalog=Northwind;" +
                    "Data Source = localhost";
                SqlConnection connection = new SqlConnection();
                connection.ConnectionString = connectionString;
                SqlDataAdapter employeeAdapter =
                    new SqlDataAdapter(new SqlCommand("Select * from Employees", connection));
                connection.Open();
                employeeAdapter.Fill(employeeTable);
    
                // Set the DataSource property of the BindingSource to the employee table.
                bindingSource1.DataSource = employeeTable;
    
                // Set up the binding to the ReportsTo column.
                Binding reportsToBinding = textBox2.DataBindings.Add("Text", bindingSource1,
                    "ReportsTo", true);
    
                // Set the NullValue property for this binding.
                reportsToBinding.NullValue = "No Manager";
    
                // Set up the binding for the PictureBox using the Add method, setting
                // the null value in method call.
                pictureBox1.DataBindings.Add("Image", bindingSource1, "Photo", true,
                    DataSourceUpdateMode.Never, new Bitmap(typeof(Button), "Button.bmp"));
    
                // Set up the remaining binding.
                textBox1.DataBindings.Add("Text", bindingSource1, "LastName", true);
            }
    
            // Move through the data when the button is clicked.
            private void button1_Click(object sender, EventArgs e)
            {
                bindingSource1.MoveNext();
            }
        }
    }
  • 相关阅读:
    几个新角色:数据科学家、数据分析师、数据(算法)工程师
    人类投资经理再也无法击败电脑的时代终将到来了...
    Action Results in Web API 2
    Multiple actions were found that match the request in Web Api
    Routing in ASP.NET Web API
    how to create an asp.net web api project in visual studio 2017
    网站漏洞扫描工具
    How does asp.net web api work?
    asp.net web api history and how does it work?
    What is the difference between a web API and a web service?
  • 原文地址:https://www.cnblogs.com/wfy680/p/14798153.html
Copyright © 2011-2022 走看看