C#mysql参数值是否为null?

问题描述

| 因此,我尝试传递点字符串的参数,我的数据库中所有列均标记为非空,但是当我尝试运行以下代码时,它告诉我列Lat不能为空。我有什么要注意的吗?
string latParameter = \"\'Point(\" + latString + \")\'\";
            string lonParameter = \"\'Point(\" + lonString + \")\'\";

            string MysqLfinishedProcessing = \" insert into zipcodes \" +
              \"set zipcode = \'\" + zipcodeString + \"\'\" +
              \",State = \'\" + StateString + \"\'\" +
              \",City = \'\" + CityString + \"\'\" +
              \",lat = GeomFromText(@latParam)\"+
              \",lon = GeomFromText(@lonParam)\"+
            \",StateCode = \'\" + StateCodeString2 + \"\'\";

            //File.AppendAllText(@\"C:\\sqlupdater.txt\",MysqLfinishedProcessing + \";\\n\");

            MysqLConnection configCON = new MysqLConnection(sqlStringClass.zipCONString);
            MysqLCommand CounterLogs = new MysqLCommand(MysqLfinishedProcessing,configCON);
            CounterLogs.Parameters.Add(new MysqLParameter(\"@latParam\",latParameter));
            CounterLogs.Parameters.Add(new MysqLParameter(\"@lonParam\",lonParameter));
            configCON.open();
            CounterLogs.ExecuteNonQuery();
            configCON.Close();
是的,latString和lonString具有值。 字符串latParameter = \'Point(40.92233)\' 字符串lonParameter = \'Point(-72.63708)\' 好吧,这似乎是因为只有一个点的引用,我更改了字符串latParameter = \'Point(40.92233 12)\',这很好。但是我真的想同时将纬度/经度都放在1点列中吗? 没关系,在MysqL Edit中可以正常工作,但是在C#中,它仍然无法解决问题。问题是字符串lonParameter需要包含一个; 这是正确的代码
 string latParameter = \"Point(\" + latString + \" \" +lonString+\");\";

            string MysqLfinishedProcessing = \" insert into zipcodes \" +
              \"set zipcode = \'\" + zipcodeString + \"\'\" +
              \",Location = GeomFromText(@latParam)\"+
            \",latParameter));
            configCON.open();
            CounterLogs.ExecuteNonQuery();
            configCON.Close();
    

解决方法

        您正在使用错误的语法编写插入语句。一定是
string mySQLfinishedProcessing = \" insert into zipcodes(zipcode,State,City,lat,lon,StateCode ) values ( \" +
          \"\'\" + zipcodeString + \"\'\" +
          \",\'\" + StateString + \"\'\" +
          \",\'\" + CityString + \"\'\" +
          \",GeomFromText(@latParam)\" +
          \",GeomFromText(@lonParam)\" +
        \",\'\" + StateCodeString2 + \"\')\";
    ,        如果GeomFromText是db函数,则无论您传入什么内容,它都可能返回null。