MySQL 数据库的网络服务

WebService for MySQL database

我想创建一个与我的 MySQL 数据库通信的 WebService,数据库的数据稍后应该显示在 Xamarin 应用程序上。但起初我被困在我的 Web 服务的某个点上并且真的不知道如何进一步(我有点新编程和 MySQL)。这是我的一段代码(代码来自personPersistance class):

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;
        }

    }
}

我将本教程用于我的 Web 服务:https://youtu.be/LpySuvYPMZQ

在我使用 savePerson 函数之前一切正常。在我的数据库中,我手动插入 ID,在教程中它会自动插入(我认为)。所以我的问题是我现在真的不知道该如何继续。

这是我的数据库列的图片,它可能会有所帮助:

MySQL database

提前致谢!

您可以在创建 table 时使用自动递增,这样您就不需要在插入数据时为每一行提供一个 ID。 基于 MySQL docs

你这样创建你的table:

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

现在,您可以提供名字和姓氏,数据库将处理 Id 列。

注意,在您的 table 中,您允许 Id 为 NULL,但这是错误的。您永远不允许在 Id 列上使用 NULL,因为它是标识符,并且对行的大部分操作都将取决于 Id 列。

正如我在评论中提到的,在插入数据时使用SQL参数以防止SQL注入。 希望对你有帮助。