【问题标题】:declare "data source" in a connection string as 'variable' in VB.NET在 VB.NET 中将连接字符串中的“数据源”声明为“变量”
【发布时间】:2013-05-27 18:06:44
【问题描述】:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    Dim bs As New BindingSource

    m_DataAdapter = New OleDbDataAdapter("SELECT * FROM Table1 ORDER BY ID", "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Users\rebel23\Desktop\sampledata.mdb")

    m_DataAdapter.Fill(m_DataSet)

    bs.DataSource = m_DataSet.Tables(0)
    BindingNavigator1.BindingSource = bs
    txtAnimal.DataBindings.Add("Text", bs, "TextBox6.text")
    txtSpecies.DataBindings.Add("Text", bs, "TextBox7.text")

在上面的代码中,我想更改“数据源”并将其声明为 TextBox1.text 这样用户将在运行时决定数据源...... 我也想要'Table1'和'ID' 但怎么做?

【问题讨论】:

  • 您是否尝试过不在绑定中的文本框名称周围加上“”?
  • 错误现在在“数据源”中...首先让我纠正它,然后其他部分将被编译错误

标签: vb.net variables connection runtime datasource


【解决方案1】:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    Dim bs As New BindingSource
    Dim myTableName As String
    Dim myOrderingColumn As String
    Dim mybind1 As String
    Dim mybind2 As String

    myTableName = TextBox3.Text
    myOrderingColumn = TextBox4.Text
    mybind1 = TextBox6.Text
    mybind2 = TextBox7.Text

    m_DataAdapter = New OleDbDataAdapter("SELECT * FROM " & myTableName & " ORDER BY " & myOrderingColumn, "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & TextBox5.Text)

    m_DataAdapter.Fill(m_DataSet)

    bs.DataSource = m_DataSet.Tables(0)
    BindingNavigator1.BindingSource = bs
    txtAnimal.DataBindings.Add("Text", bs, "" & TextBox6.Text & "")
    txtSpecies.DataBindings.Add("Text", bs, "" & TextBox7.Text & "")


End Sub

嘿,我得到了密码!!!!它的工作..非常感谢您的支持和建议@matzone

【讨论】:

    【解决方案2】:

    我以不同的方式做到了..

    Dim myConn = New OleDb.OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\rebel23\Desktop\sampledata.mdb;Jet OLEDB:Database Password=mypass")
    
    Dim cmd As OleDbCommand 
    Dim ds as DataSet = New DataSet
    
    myConn.Open() '--> open conn
    cmd = New OleDbCommand("SELECT * FROM Table1 ORDER BY ID", myConn)
    
    cmd.Fill(ds, "predator") ' ---> named dataset as Predator
    
    txtAnimal.DataBindings.Add("Text", ds.Tables("predator"), "'" & TextBox6.text & "'")
    txtSpecies.DataBindings.Add("Text",ds.Tables("predator"), "'" & TextBox7.text & "'")
    
    ' ....
    ' .....
    
    cmd.Dispose()
    ds.Dispose()
    cnn.Close()
    

    【讨论】:

    • 我的问题仍然没有答案!!!! “数据源”呢?????? @matzone
    • 尝试了myTableName = TextBox3.Text myOrderingColumn = TextBox4.Text m_DataAdapter = New OleDbDataAdapter("SELECT * FROM " & myTableName & " ORDER BY " & myOrderingColumn, "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=" & TextBox5.Text) 和您所说的一切,但仍然收到错误(运行时)错误详细信息 - System.Data.OleDb.OleDbException 未处理 ErrorCode=-2147467259 消息=找不到可安装的 ISAM。 Source=Microsoft JET 数据库引擎@matzone
    • 我的第一个要求是用户应该能够在你的代码中声明数据源......在你的代码中用户告诉数据源......它已经在代码中定义......主题是 - 将连接字符串中的“数据源”声明为 VB.NET 中的“变量”
    • 在运行时声明数据源
    • @ʞuɐɹdRebel:在第一行..声明与数据源的连接! .. 所以你想要什么 ? .. textbox6 和 7 中的文本是什么样的?
    猜你喜欢
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2012-03-07
    • 2011-04-19
    相关资源
    最近更新 更多