WebService для MySQL базы данных - PullRequest
0 голосов
/ 10 марта 2020

Я хочу создать WebService, который будет взаимодействовать с моей базой данных MySQL, данные базы данных должны быть позже отображены в приложении Xamarin. Но сначала я застрял в какой-то точке моего WebService и не знаю, как дальше (я немного новичок в программировании и MySQL). Вот фрагмент моего кода (код из класса personPersistance):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SimpleRESTServer.Models;
using MySql.Data;


namespace SimpleRESTServer
{
    public class PersonPersistance
    {

        private MySql.Data.MySqlClient.MySqlConnection conn;

        public PersonPersistance()
        {
            string myConnectionString;
            myConnectionString = "server=127.0.0.1;uid=Local Instance MySQL80; pwd=;database=employeedb";
            try
            {
                conn = new MySql.Data.MySqlClient.MySqlConnection();
                conn.ConnectionString = myConnectionString;
                conn.Open();
            }
            catch (MySql.Data.MySqlClient.MySqlException ex)
            {

            }

        }
        public long savePerson(Person personToSave)
        {
            String sqlString = " INSERT INTO tblpersonnel (FirstName, LastName) VALUES ('"+ personToSave.FirstName + "','" + personToSave.LastName + "')";}
            MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlConnection(sqlString, conn);
            cmd.ExecuteNonQuery();
            long id = cmd.LastInsertedId;
            return id;
        }

    }
}

Я использовал это руководство для своего WebService: https://youtu.be/LpySuvYPMZQ

Все работает как и должно быть, пока я не приду к функции savePerson. В свою базу данных я вставляю идентификатор вручную, в учебнике он вставляется автоматически (я думаю). Так что моя проблема в том, что я на самом деле не знаю, как go включить в данный момент.

Вот изображение столбцов моей базы данных, это может помочь:

MySQL база данных

Заранее спасибо!

1 Ответ

0 голосов
/ 10 марта 2020

Вы можете использовать Автоинкремент при создании таблицы, поэтому вам не нужно указывать идентификатор для каждой строки при вставке данных. На основе MySQL документов

Вы создаете свою таблицу следующим образом:

CREATE TABLE Personnel (
     Id MEDIUMINT NOT NULL AUTO_INCREMENT,
     Firstname varchar(30),
     Lastname varchar(30),
     PRIMARY KEY (id)
);

Теперь вы можете указать имя и фамилию, и база данных позаботится о вас. столбец Id.

Примечание , в вашей таблице вы разрешаете NULL для Id, но это неправильно. Вы никогда не разрешаете NULL для столбца Id, поскольку это идентификатор, и большинство операций со строками будет зависеть от столбца Id.

Как я уже упоминал в комментариях, используйте SQL параметры при вставке данных, чтобы предотвратить SQL Инъекцию. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...