簡體   English   中英

如何防止將相同的數據從 textField 添加到數據庫?

[英]How to prevent adding same data from textField to database?

我有一個小問題,我正在制作項目,我正在從客戶端向服務器發送數據,服務器將其發送到 mysql 數據庫。 我在客戶端應用程序中有客戶端和管理選項卡,在客戶端選項卡中我輸入用戶名並連接到服務器,這個用戶名被發送到服務器並且服務器保存到用戶表中的數據庫中。 在管理選項卡(客戶端應用程序端)中,我連接以修改數據庫中的一些數據並將新數據添加到數據庫中。 我的問題是:一步一步 1。我輸入用戶名,按連接,用戶名字符串被發送到服務器並保存在表用戶 2 的 mysql 中。接下來,我 go 到管理選項卡,我想添加一些數據是插入到 mysql(這是字符串中的問題)所以我在文本字段中鍵入該問題並按添加,問題是服務器將其讀取為用戶名並將其插入用戶表而不是問題表。

這是我發送用戶名的客戶端代碼:

String name = client.nameField.getText();
        out = new PrintWriter (os, true); 
        out.println(name);

這是我發送數據的管理選項卡中的代碼:

DataOutputStream os = new DataOutputStream (socket.getOutputStream()); 

                String name = client.nameField.getText();
                String title = Configuration.titleField.getText();
                String question = Configuration.questionField.getText();
                String answer1 = Configuration.answer1Field.getText();
                out = new PrintWriter (os, true);

                out.println(title);
                out.println(question);
                out.println(answer1);

這是在服務器端接收數據的代碼:

while(RunThread){

            String name;
            name = in.readLine();


           st.execute("INSERT INTO "+db+" .poll_users (name) VALUES ('" + name + "')");

            String title;
            title = in.readLine();
            if(title!=null)
            st.execute("INSERT INTO "+db+" .poll_titles (title) VALUES ('" + title + "')");

            String question;
            question = in.readLine();
            if(question!=null)
            st.execute("INSERT INTO "+db+" .poll_questions (question) VALUES ('" + question + "')");

            String answer1;
            answer1 = in.readLine();
            if(answer1!=null)
            st.execute("INSERT INTO "+db+" .poll_answers (answer) VALUES ('" + answer1 + "')");

如何讓它發揮作用? 謝謝你的幫助

你缺嗎:

out.println(name);

在打印標題之前?

也許您應該將您的客戶端服務器協議從依賴消息的順序更改為更明確? 可能會使它更堅固。

也許你應該發送這樣的行:

 out.println("Name:" + name);
 out.println("Title:" + title);
 out.println("Question" + question);
 out.println("Answer" + answer1);

然后您可以按任何順序接收字段..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM