Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.NET中将连接字符串中的“数据源”声明为“变量”_Vb.net_Variables_Connection_Runtime_Datasource - Fatal编程技术网

在VB.NET中将连接字符串中的“数据源”声明为“变量”

在VB.NET中将连接字符串中的“数据源”声明为“变量”,vb.net,variables,connection,runtime,datasource,Vb.net,Variables,Connection,Runtime,Datasource,在上面的代码中,我想更改数据源并将其声明为TextBox1.text 以便用户在运行时决定数据源。。。 我还希望“Table1”和“ID”也一样 但是怎么做呢 我是用不同的方式做的 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim bs As New BindingSource m_DataAdapter

在上面的代码中,我想更改数据源并将其声明为TextBox1.text 以便用户在运行时决定数据源。。。 我还希望“Table1”和“ID”也一样
但是怎么做呢

我是用不同的方式做的

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")

嘿,我找到密码了!!!!它起作用了。。。。非常感谢您的支持和建议@matzone

您是否尝试在绑定中不使用文本框名称?错误现在在数据源中。。。首先让我纠正一下,然后其他部分将被编译为错误。我的问题仍然没有答案!!!!数据源呢@MatzonMetried myTableName=TextBox3.Text myOrderingColumn=TextBox4.Text m_DataAdapter=新OLEDB数据适配器从&myTableName&ORDER BY&myOrderingColumn中选择*,提供程序=Microsoft.Jet.OLEDB.4.0;DataSource=&TextBox5.Text和您所说的所有内容,但仍会收到错误运行时错误详细信息-System.Data.OleDb.OledBeException未处理错误代码=-2147467259消息=找不到可安装的ISAM。Source=Microsoft JET Database Engine@matzoneMy第一个要求是用户应该能够声明数据源。。。。在您的代码中,用户告诉数据源的是什么。。它已在代码中定义。。。主题是-在VB中将连接字符串中的“数据源”声明为“变量”。NET在运行时声明数据源@uɐɹdRebel:在第一行。。正在声明与数据源的连接。。那么,你想要什么。。textbox6和TextBox7中的文本类型是什么?
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()
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