Following are the step to upload a image to MS-SQL database in Android Studio.
(1) Step – 1 : Add following in your activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edittext"
android:hint="Text"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="Generate"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageview"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_35sdp"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Upload Image"
android:id="@+id/qrbutton"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/status"
android:text="Status"
android:layout_gravity="center"
android:textAlignment="center"
/>
</LinearLayout>
(2) Step – 2 : Now add following in your MainActivity.java.
public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity {
EditText editText;
Button button,qrbutton;
ImageView imageView;
TextView textView;
Connection con;
Statement stmt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText)findViewById(R.id.edittext);
button = (Button)findViewById(R.id.button);
imageView = (ImageView)findViewById(R.id.imageview);
qrbutton = (Button)findViewById(R.id.qrbutton);
textView = (TextView)findViewById(R.id.status);
qrbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new MainActivity.sendImage().execute("");
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try{
BitMatrix bitMatrix = multiFormatWriter.encode(editText.getText().toString(),BarcodeFormat.QR_CODE,500,500);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
imageView.setImageBitmap(bitmap);
textView.setText("Image Created");
}catch (Exception e){
e.printStackTrace();
}
}
});
}
public class sendImage extends AsyncTask<String,String ,String>{
@Override
protected String doInBackground(String... strings) {
String s = "false";
try{
textView.setText("Sending Image to Database");
BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = bitmapDrawable.getBitmap();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG,100,byteArrayOutputStream);
byte[] bytes = byteArrayOutputStream.toByteArray();
String image = Base64.encodeToString(bytes , Base64.DEFAULT);
con = connectionClass(ConnectionClass.un.toString(),ConnectionClass.pass.toString(),ConnectionClass.db.toString(),ConnectionClass.ip.toString());
String query = "insert into Image (image) values ('"+image+"')";
stmt = con.createStatement();
stmt.executeUpdate(query);
s = "true";
textView.setText("Image Send to Database Success");
}catch (Exception e){
e.printStackTrace();
}
return s;
}
}
@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;
}
}
(3) Step – 3 : If you want to generate a QR-Code you can check following blog.
https://ketulpatel.code.blog/2020/05/21/generating-qr-code-in-android-studio/
(4) Step – 4 : Following is the output of the application.

(5) Step – 5 : If you want to watch full video you can visit the link below.
