-1

mysqlテーブルがUIDholdを呼び出し、1つの列がUID(主キー)と呼ばれています。1〜20000から自動インクリメントする値があります。

私のWPFアプリには、mysql .netライブラリ参照があり、データベースに正常に接続しています。私が疑問に思っているのは、データベースに接続した後、どのようにUIDを選択し(例; 1)、その値のテキストボックスまたは文字列変数を保存し、dbテーブルからそのUIDを削除するのでしょうか?

Mysqlコマンドラインで実行すると:

SELECT LAST_INSERT_ID();

取得0しますが、最初の値はである必要があります1

どんなガイダンスも素晴らしいでしょう!

アップデート:

最小UIDを選択する方法を理解しました。これは1になります。ただし、文字列変数/テキストボックスに保存する方法がわかりません。UIDTextBox.Text=myDataでの構文エラー。「System.data.datatable型の値を文字列に変換できません。」だから私は何をする必要がありますか?

VB.Net

Imports MySql.Data.MySqlClient
Imports System.Data


Public Class test1


Dim cmd As New MySqlCommand

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As  System.Windows.RoutedEventArgs) Handles Button1.Click
    Dim myCommand As New MySqlCommand
    Dim myAdapter As New MySqlDataAdapter
    Dim myData As New DataTable
    Dim SQL As String
    Dim connStr As String = "Database=;" & _
                       "Data Source=localhost;" & _
                       "User Id=;Password=;"
    Dim connection As New MySqlConnection(connStr)

    connection.Open()
    SQL = "SELECT MIN(UID) FROM `UIDhold`"


    myCommand.CommandText = SQL

    myAdapter.SelectCommand = myCommand
    myAdapter.Fill(myData)




    UIDTextBox.Text = myData

End Sub
End Class

XAML

<Window x:Class="test1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="test1" Height="300" Width="300">
<Grid>
    <Button Content="Sign In" Height="23" HorizontalAlignment="Left" Margin="184,159,0,0" Name="Button1" VerticalAlignment="Top" Width="75" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="120,38,0,0" Name="UIDTextBox" VerticalAlignment="Top" Width="68" />
    <Label Content="UID" Height="28" HorizontalAlignment="Left" Margin="58,33,0,0" Name="Label1" VerticalAlignment="Top" />
</Grid>
</Window>
4

1 に答える 1

1

自動インクリメントは、MySQL サーバー自体を介して行うことができます。テーブルをセットアップするときにそれをセットアップするだけです。

CREATE TABLE data(
     UID MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;

したがって、値をデータベースに戻したいときはいつでも、値を null に設定すると、自動インクリメントされます。

INSERT INTO animals (name) VALUES
    ('ssss')

また、あなたがやろうとしていることもわかります(うまくいけば、私はそれを正しく理解しました)。ただし、データテーブルを作成する場合は、各行を解析してから、while ループを使用して追加する必要があります。

    table.Columns.Add("UID", typeof(int));
    table.Columns.Add("name", typeof(string));


   using (var varConnection = Locale.sqlConnectOneTimeMySql(Locale.sqlDataConnectionDetailsMySQL))
    using (var sqlQuery = new MySqlCommand(preparedCommand, varConnection)) {
        using (var sqlQueryResult = sqlQuery.ExecuteReader())                 
                while (sqlQueryResult.Read()) {
//above is basic sql stuff i expect you know


//Here's where you ge thte data
                    int uid = sqlQueryResult["UID"] is int ? (int)sqlQueryResult["UID"] : 0;
                    string name = sqlQueryResult["name"].ToString();

// here is where you're outputting to your table
                    table.Rows.Add(uid,name); 
                }
         }
    }
于 2013-01-11T16:26:48.970 に答える