因此,我有两个表,学生和Klas_student,说明如下。
学生
CREATE TABLE IF NOT EXISTS Studenten(
Studentenummer varchar(7) CHECK (Studentenummer ~'[0-9A-ZA-Z]{7}'),
}Klas
CREATE TABLE IF NOT EXISTS Klas(
Student varchar(7) REFERENCES studenten (Studentenummer) ON DELETE CASCADE NOT NULL,
Klas text NOT NULL REFERENCES Klas (Naam_id) ON DELETE CASCADE NOT NULL
);正如您在Klas_student中看到的,学生引用表中的学生编号。现在,在java中,我需要从Studenten那里提取学生,并将其放在Klas_student中。
为此,我执行一个查询并从Studenten获取所有学生。
sql = "INSERT INTO Studenten " + "VALUES ('1559335')";
statement2.executeUpdate(sql);然后我想从它中获得价值,我做到了:
String studentnummer = result.getString(1).toString();
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (studentnummer)";
statement2.executeUpdate(sqlStudenToKlas);
conn.commit();然而,在sqlStudentToKlas中,它不以学生数(result.getString(1))字符串作为参数。
有谁能把result.getString(1)作为值中的参数/变量传递?
提前谢谢。
发布于 2015-06-13 15:13:05
C#:
您正在使用'@'将参数传递给ADO.net中的查询字符串
String studentnummer = result.getString(1).toString();
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (@studentenummer)";
Command.Parameters.AddWithValue("@List", studentenummer);
statement2.executeUpdate(sqlStudenToKlas);
conn.commit();并使用本教程:C#站点ADO.NET教程
使用JDBC的Java:
String studentnummer = result.getString(1).toString();
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (?)";
sqlStudenToKlas.setString(1, studentenummer);
statement2.executeUpdate(sqlStudenToKlas);
conn.commit();并使用本教程:PreparedStatement的命名参数
发布于 2015-06-13 15:13:05
这里的错误:
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (studentenummer)";你传递的字符串学生,而不是它的价值。尝试:
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES (" + studentenummer+")";或
sqlStudenToKlas = "INSERT INTO Klas " + "VALUES ('" + studentenummer+"')";https://stackoverflow.com/questions/30820130
复制相似问题