我已经在 Linux 操作系统的 Java 中(或多或少)编写了这个代码,但是我对 .net 的语法还不够熟悉,无法将我的 Java 代码转换为 VB2010 代码...所以我希望这里有人可以帮我解决这个问题。
问题:
我正在尝试(如标题所示)根据我们客户数据库中的条目在我的 Windows 框上创建文件夹(我们有很多,所以我不打算手动创建它们,哈哈)。
我想使用 VB.net 创建一个程序,该程序将通过 SQL 数据库循环查询,获取我们客户的客户 ID,并在特定目录中为每个名称创建文件夹。
我需要翻译的 Java 代码:
//Initializers
Statement stmt;
ResultSet rs;
rs = stmt.executeQuery("SELECT CustomerID FROM customerlist;");
System.out.println("Creating customer user database:\n");
while(rs.next()){
String str1 = rs.getString("CustomerID");
try {
// Create user & Home Directory
Process p = Runtime.getRuntime().exec("sudo useradd " + str1 + " --shell /bin/sh -m " );
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println("Created user: \t" + str1);
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
Thread.sleep(100);
} catch (IOException e) {
e.printStackTrace();
}
}
我需要 vb 代码来做同样的事情,但只创建文件夹,并且适用于 Windows 操作系统。
重要说明:
- 我正在使用
Imports MySql.Data.MySqlClient
建立数据库连接。 - 它是一个 REMOTE mysql 服务器,而不是本地服务器(不知道是否需要这个注释)。
- 我们有将近 6,000 名客户...(这就是为什么我不亲自动手!)
- 老板说要从 Java 切换到 VB,所以请不要争论坚持使用 Java 的意义..
鉴于人们是如何认为我要为整个程序索取讲义的……这是我目前所拥有的:
Private Sub ButtonLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonLogin.Click
conn = New MySqlConnection()
conn.ConnectionString = "server=xxx" & ";" & "user id=xxx" & ";" & "password=xxx" & ";" & "database=companysqldb"
Try
conn.Open()
MessageBox.Show("Connection Opened Successfully")
'while loop pseudo
'------------------
'set query string to "SELECT CustomerID FROM customerlist;"
'while looping through query
'set stringvar to current loop's CustomerID
'Create directory
If(Not System.IO.Directory.Exists("c:\pub\users\" & stringvar)) Then System.IO.Directory.CreateDirectory("c:\pub\users\" & stringvar)
RichTextBox.AppendText(vbCrLf & "Added folder: " & stringvar)
RichTextBox.ScrollToCaret()
'end while loop
Catch myerror As MySqlException
MessageBox.Show("Error Connecting to Database: " & myerror.Message)
End Try
End Sub
如您所见,我已经写出了大部分内容,但我的主要困难是 while 循环和 SQL 查询的语法。
最佳答案
解决方案:
嗯,经过几个小时的网上搜索,我终于找到了我要找的解决方案。
改变了:
conn.Open()
MessageBox.Show("Connection Opened Successfully")
'while loop pseudo
'------------------
'set query string to "SELECT CustomerID FROM customerlist;"
'while looping through query
'set stringvar to current loop's CustomerID
'Create directory
If(Not System.IO.Directory.Exists("c:\pub\users\" & stringvar)) Then System.IO.Directory.CreateDirectory("c:\pub\users\" & stringvar)
RichTextBox.AppendText(vbCrLf & "Added folder: " & stringvar)
RichTextBox.ScrollToCaret()
'end while loop
到
conn.Open()
MessageBox.Show("Connection Opened Successfully")
Dim command As New MySqlCommand("SELECT CustomerID from customerlist", conn)
Dim stringvar As String
Dim count As Integer = 1
myReader = command.ExecuteReader
While (myReader.Read())
stringvar = myReader(0).ToString
If (Not System.IO.Directory.Exists("c:\pub\users\" & stringvar)) Then
System.IO.Directory.CreateDirectory("c:\pub\users\" & stringvar)
TextBox.AppendText(vbCrLf & count & ": Created folder for CustomerID: " & stringvar)
TextBox.ScrollToCaret()
Else
TextBox.AppendText(vbCrLf & count & ": Could *NOT* creat folder for CustomerID: " & stringvar)
TextBox.ScrollToCaret()
End If
count = count + 1
End While
制作:
CustomerID: 11112
CustomerID: 11113
CustomerID: 11114
关于mysql - 需要帮助在 VB.net 中编写一个循环以根据远程 sql db 中的用户名在 Windows 中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822398/