最近,我正在研究 asp.net c# 框架,插入查詢出現問題,但我看不到決議器錯誤,它顯示空白頁。這就是為什么我無法弄清楚我的代碼的問題。這是我的代碼和我的 web.config 檔案。
web.config 檔案:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation targetFramework="4.7.2" />
<!-- ******************** -->
</system.web>
<system.codedom>
<compilers>
<compiler extension=".cs" language="c#;cs;csharp" warningLevel="4" compilerOptions="/langversion:7.3 /nowarn:1659;1699;1701;612;618" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<compiler extension=".vb" language="vb;vbs;visualbasic;vbscript" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008,40000,40008 /define:_MYTYPE=\"Web\" /optionInfer " type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</compilers>
</system.codedom>
</configuration>
插入查詢代碼:
sql = "INSERT INTO [transaction] (employeeName, receivedDate, recipient, senderParty, receivedParty, tranNum, email, status, userID)"
"values (@employName, @recDate, @recipientName, @sendName, @recName, @tranNumber, @employEmail, @stat, @id)";
//Response.Write(reciveDate.Value);
//Response.Write(empEmail);
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
if (conn.State == ConnectionState.Closed)
conn.Open();
cmd.Parameters.AddWithValue("@employName", employeeName);
cmd.Parameters.AddWithValue("@recDate", reciveDate.Value);
cmd.Parameters.AddWithValue("@recipientName", reciever.Value); ;
cmd.Parameters.AddWithValue("@sendName", senderAdress.Value);
cmd.Parameters.AddWithValue("@recName", recieverAdress.Value);
cmd.Parameters.AddWithValue("@tranNumber", Convert.ToInt32(tranID.Value));
cmd.Parameters.AddWithValue("@employEmail", empEmail);
cmd.Parameters.AddWithValue("@stat", "p");
cmd.Parameters.AddWithValue("@id", empID);
a = cmd.ExecuteNonQuery();
}
我嘗試將資料插入 Microsoft SQL 管理服務器,但它不起作用,我看不到決議器錯誤。
如何顯示決議器錯誤?
請幫助我,謝謝
uj5u.com熱心網友回復:
您需要嘗試捕獲并查看例外。
您還需要先直接在 SQL Server 中運行查詢,看看您的查詢是否有任何問題。
我不確定,但您的查詢在這里不正確。它正在生成以下查詢。
INSERT INTO [transaction] (employeeName, receivedDate, recipient, senderParty, receivedParty, tranNum, email, status, userID)values (@employName, @recDate, @recipientName, @sendName, @recName, @tranNumber, @employEmail, @stat, @id)
如果你仔細看,值之前沒有空格。所以你需要糾正它。
并請宣告 con 與using宣告。
uj5u.com熱心網友回復:
如前所述,您應該在“值”之前有一個空格。
或使用 @ 作為字串,并使用換行符。
并且您應該 STRONG 鍵入引數。
(不要使用加法)
因此:
sql = @"INSERT INTO [transaction]
(employeeName, receivedDate, recipient, senderParty, receivedParty, tranNum, email, status, userID)
VALUES (@employName, @recDate, @recipientName, @sendName, @recName, @tranNumber, @employEmail, @stat, @id)";
using (SqlCommand cmd = new SqlCommand(sql))
{
cmd.Parameters.Add("@employName", SqlDbType.NVarChar).Value = employeeName;
cmd.Parameters.Add("@recDate", SqlDbType.Date).Value = reciveDate.Value;
cmd.Parameters.Add("@recipientName", SqlDbType.NVarChar).Value = reciever.Value;
cmd.Parameters.Add("@sendName", SqlDbType.NVarChar).Value = senderAdress.Value;
cmd.Parameters.Add("@recName", SqlDbType.NVarChar).Value = recieverAdress.Value;
cmd.Parameters.Add("@tranNumber", SqlDbType.Int).Value = Convert.ToInt32(tranID.Value);
cmd.Parameters.Add("@employEmail", SqlDbType.NVarChar).Value = empEmail;
cmd.Parameters.Add("@stat", SqlDbType.NVarChar).Value = "p";
cmd.Parameters.Add("@id", SqlDbType.Int).Value = empID;
cmd.ExecuteNonQuery();
}
變數來自哪里?
如果這些是文本框,那么您將使用 MyAddress.Text,而不是 MyAddress.Value
編輯:在應用程式中顯示錯誤
添加到 system.web 這個:
<customErrors mode="Off" >
</customErrors>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/528800.html
標籤:C#网
