正在尝试从c#winform向mysql表中插入值,但缺少一些值

kuuvgm7e  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(209)

我正在尝试将值插入到从winform应用程序创建的测试数据库中。我有它的大部分工作,但总有一个钥匙丢失时,我把邮政请求。
我在lamp stack上存储了一个php文件,要插入的相关代码如下:

$CustId = mysqli_real_escape_string($con, $_POST['CustId']);
$LastName = mysqli_real_escape_string($con, $_POST['LastName']);
$FirstName = mysqli_real_escape_string($con, $_POST['FirstName']);
$DOB = mysqli_real_escape_string($con, $_POST['DOB']);
$CustPhone = mysqli_real_escape_string($con, $_POST['CustPhone']);
$LatestToken = mysqli_real_escape_string($con, $_POST['LatestToken']);
$AcntLast4 = mysqli_real_escape_string($con, $_POST['AcntLast4']);
$AuthKey = mysqli_real_escape_string($con, $_POST['AuthKey']);

$sql="INSERT INTO Customer (CustId, LastName, FirstName, DOB, CustPhone, 
LatestToken, AcntLast4, AuthKey) VALUES ('$CustId', '$LastName', 
'$FirstName', '$DOB', '$CustPhone', '$LatestToken', '$AcntLast4', 
'$AuthKey')";

现在在c#winforms端,我将以下代码作为按钮事件。注意我已经硬编码了这些值,因为我不想每次都在文本框中键入它们

string URL = "http://localhost/InsertCustomer.php";
        WebClient webClient = new WebClient();

        NameValueCollection formData = new NameValueCollection();
        formData["CustId"] = "avc7";
        formData["LastName"] = "Tired";
        formData["FirstName"] = "Iam";
        formData["DOB"] = "2009-05-04";
        formData["CustPhone"] = "54433454";
        formData["LatestToken"] = "85858dgggd"; //We get this from the call
        formData["AcntLast4"] = "9874"; //We get this from the call
        formData["Authkey"] = "fake"; //This is stored in config file    

        byte[] responseBytes = webClient.UploadValues(URL, "POST", formData);
        string responsefromserver = Encoding.UTF8.GetString(responseBytes);
        richTextBox1.Text = responsefromserver;
        webClient.Dispose();

现在,当我触发此事件时,它将所有值存储到mysql表中,但“authkey”除外。
有两张table。一个表称为customer,其结构如下:

CUSTOMER
CustID Primary Key Not null
LastName varchar
FirstName varchar
DOB Date
CustPhone varchar
LatestToken varchar
AuthKey Primary Key Not Null
AcntLast4

还有一个历史表

HISTORY
HistoryNum Primary Not Null Auto Increment
TransAmt varchar
Transdate date
TransType varchar
AuthKey varchar
CustId varchar

当我尝试插入到customer表中时(如上图所示),它不会为“authkey”填充一个值,但会为其他所有内容填充一个值。
当我尝试插入到history表中时,它不会填充“authkey”或“custid”,但会填充其他所有内容。
在某个地方我想我把钥匙弄坏了。这个数据库在这个时候可能没有被适当地建模,但是为什么它会这样呢?我一直盯着它,并尝试了几个小的变化,看看它是否修复,但我没有成功。这是我最后的选择。谢谢
另一个注意事项:当我使用mysql在终端中简单地执行查询时,一切都很好。所以我不确定这里发生了什么
编辑:我做了一些事情来缩小这个问题。
考虑到我可以直接从mysql终端键入这些insert查询,而且它们的行为非常好,我知道这个表很好。
我知道namevaluecollection实际上保存了正确的数据,因为我运行了一个循环并打印出了值,“authkey”值就在那里。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题