一个继承类的问题
我在Vb.net添加了一个用户控件,该控件继承自Combobox控件,我想实现在控件运行的时候,自动
根据设置好的SQL语句将数据提取到前台,并添回到Combobx中,代码如下:
Public Class Combox
Private _Connection As SqlClient.SqlConnection
'保存连接对像的属性
Property Connection() As SqlClient.SqlConnection
Get
Return _Connection
End Get
Set(ByVal value As SqlClient.SqlConnection)
_Connection = value
End Set
End Property
Private _SqlString As String = ""
'保存要查询的SQL语句
Property SqlString() As String
Get
Return _SqlString
End Get
Set(ByVal value As String)
_SqlString = value
End Set
End Property
Private _Type As Boolean = True
'定义控件何时应该进行Fill,Ture表示在控件初始化进填充数据,Flase表示在点击控件的下拉箭头时才填充
Property Type() As Boolean
Get
Return _Type
End Get
Set(ByVal value As Boolean)
_Type = value
End Set
End Property
Private Sub FillData() '填充数据到控件中
If Me.SqlString <> "" Then
If TypeOf Me.Connection Is SqlClient.SqlConnection Then
If Me.Connection.State = ConnectionState.Closed Then
Try
Me.Connection.Open()
Catch Ex As SqlClient.SqlException
MessageBox.Show(Ex.Message)
End Try
End If
Me.Items.Clear()
Dim DataReader As SqlClient.SqlDataReader
Dim Command As New SqlClient.SqlCommand(Me.SqlString, Me.Connection)
DataReader = Command.ExecuteReader()
Me.BeginUpdate()
While DataReader.Read()
Me.Items.Add(DataReader.Item(0))
End While
Me.EndUpdate()
DataReader.Close()
Me.Connection.Close()
Else
MessageBox.Show("没有为属性Connection赋于正确的Connection对像", "参数错误", MessageBoxButtons.OK)
End If
Else
MessageBox.Show("还没有填写要获取数据的SQL语句!", "参数错误", MessageBoxButtons.OK)
End If
End Sub
Private Sub 继承Combox_DropDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.DropDown
If Me.Type = False Then
Me.FillData()
End If
End Sub
Public Sub New()
' 此调用是 Windows 窗体设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
If Me.Type = True Then
Me.FillData()
End If
End Sub
End Class
新建好控件后,我再将控件放到一个Form上,但是运行Form的时候,就会出现"还没有填写要获取数据的SQL语句!",而且是出现两个错误提示,而我的SqlString属性中已经写上了获取数据的SQL语句了,而且,就算是没填SQL语句,也应该是只出现一次错误提示,为什么会出现两次呢?