#java #android #sql-server
Вопрос:
Я пытаюсь вставить изображение в SQL Server вот мой код, и он отлично работает (он вставляет изображение в базу данных). Моя проблема начинается после вставки и когда я вижу столбец изображения в базе данных.
protected String doInBackground(String... strings) {
try {
con = connectionClass(ConnectionClass.un, ConnectionClass.pass, ConnectionClass.db, ConnectionClass.ip);
if (con == null) {
z = "No Internet Connection";
} else {
String sql = "INSERT INTO [dbo].[tblComplaint] (customerName,type,image) VALUES ('" name.getText() "','" complain.getText() "','" encodedImage "')";
//PreparedStatement stmt = con.prepareStatement(sql);
//stmt.executeUpdate();
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
}
} catch (Exception e) {
isSuccess = false;
z = e.getMessage();
}
return z;
}
@SuppressLint("NewApi")
public Connection connectionClass(String user, String password, String database, String server) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection connection = null;
String connectionURL = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connectionURL = "jdbc:jtds:sqlserver://" server "/" database ";user=" user ";password=" password ";";
connection = DriverManager.getConnection(connectionURL);
} catch (Exception e) {
Log.e("SQL Connection Error : ", e.getMessage());
}
return connection;
}
Проблема: Независимо от того, какое изображение я отправил в базу данных, оно вставляет только один и тот же набор строк, начиная с: 0x2F396A2F34414151536B5A4A5267414241514141415141424141442F3467496F53554E44583142
и продолжается в течение 100 строк, что, как я предполагаю, неправильно. Я пробовал отправлять 4-5 разных изображений, но это не меняется. Что я делаю не так? Тип данных для столбца изображения image
такой , я тоже пробовал varbinary(max)
и так далее.
Комментарии:
1. Вы должны показать нам код, который записывается в базу данных, если хотите, чтобы вам помогли его исправить. Кроме того, вы больше не должны использовать
image
тип данных, только используйтеvarbinary(max)
.2. Я опубликовал код ниже , но это половина , он не позволит мне вставить весь код , я справился с этим из БД, да, я также пробовал VARBINARY, но результат не меняется.
3. Извините , да, пожалуйста, смотрите ниже
4. надеюсь, это поможет
5. Я думаю, что вы решили бы все свои проблемы, если бы начали использовать параметры вместо создания объединенной строки для записи в базу данных. И если вы настаивали на использовании существующего кода, вы не указываете значение varbinary, потому что это не строка.