我收到此错误:
System.Data.SqlClient.SqlException:'nvarchar'附近的语法不正确。 “名称”附近的语法不正确。”
尝试点击添加按钮时。这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
namespace OOP_Draft
{
public partial class Form1 : Form
{
double amount, monthlyPay, totalPay;
int years;
private void btnReset_Click(object sender, EventArgs e)
{
txtName.Clear();
txtEmpno.Clear();
txtEmail.Clear();
txtDept.Clear();
txtAmount.Clear();
txtYears.Clear();
lblPay.Text = "";
lblTot.Text = "";
rtxtReceipt.Clear();
}
private void btnSubmit_Click(object sender, EventArgs e)
{
if(txtName.Text == "")
{
MessageBox.Show("Please fill up the form.");
}
else if (txtEmpno.Text == "")
{
MessageBox.Show("Please fill up the form.");
}
else if (txtEmail.Text == "")
{
MessageBox.Show("Please fill up the form.");
}
else if (txtDept.Text == "")
{
MessageBox.Show("Please fill up the form.");
}
else if (txtAmount.Text == "")
{
MessageBox.Show("Please fill up the form.");
}
else if (txtYears.Text == "")
{
MessageBox.Show("Please fill up the form.");
}
else
{
amount = double.Parse(txtAmount.Text);
years = int.Parse(txtYears.Text);
monthlyPay = amount * 0.03 / (1 - 1 / Math.Pow(1 + 0.02, years * 12));
totalPay = monthlyPay * years * 12;
monthly = Convert.ToString(monthlyPay);
monthly = String.Format("{0:C}", monthlyPay);
lblPay.Text = (monthly);
total = String.Format("{0:C}", totalPay);
lblTot.Text = (total);
txtAmount.Text = String.Format("{0:C}", amount);
}
}
string monthly, total;
private void btnEmail_Click(object sender, EventArgs e)
{
try
{
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("prestantesi@gmail.com", "ironhide13");
MailMessage msg = new MailMessage();
msg.To.Add(txtEmail.Text);
msg.From = new MailAddress("prestantesi@gmail.com");
msg.Subject = "Loan Receipt";
msg.Body = rtxtReceipt.Text;
client.Send(msg);
MessageBox.Show("Email Sent.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
SqlCommand cmd;
SqlConnection con;
con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Kim\Documents\SMEMCO.mdf;Integrated Security=True");
con.Open();
cmd = new SqlCommand("INSERT INTO LoanRecord (Employee Name, Employee Number, Department, Loan Amount, Years To Pay, Monthly Payment, Total Payment) VALUES (@Employee Name, @Employee Number, @Department, @Loan Amount, @Years To Pay, @Monthly Payment, @Total Payment)", con);
cmd.Parameters.AddWithValue("@Employee Name", txtName.Text);
cmd.Parameters.AddWithValue("@Employee Number", txtEmpno.Text);
cmd.Parameters.AddWithValue("@Department", txtDept.Text);
cmd.Parameters.AddWithValue("@Loan Amount", txtAmount.Text);
cmd.Parameters.AddWithValue("@Years To Pay", txtYears.Text);
cmd.Parameters.AddWithValue("@Monthly Payment", lblPay.Text);
cmd.Parameters.AddWithValue("@Total Payment", lblTot.Text);
cmd.ExecuteNonQuery();
}
private void btnDisplay_Click(object sender, EventArgs e)
{
rtxtReceipt.AppendText("Loan Record" + "\t" + "\n");
rtxtReceipt.AppendText("--------------------------------------------------------" + "\t" + "\n");
rtxtReceipt.AppendText("Name:" + "\t" + "\t" + "\t" + "\t" + txtName.Text + "\n");
rtxtReceipt.AppendText("Employee Number:" + "\t" + "\t" + txtEmpno.Text + "\n");
rtxtReceipt.AppendText("Department:" + "\t" + "\t" + "\t" + txtDept.Text + "\n");
rtxtReceipt.AppendText("Amount to be loaned:" + "\t" + txtAmount.Text + "\n");
rtxtReceipt.AppendText("Years to Pay:" + "\t" + "\t" + "\t" + txtYears.Text + "\n");
rtxtReceipt.AppendText("Interest Rate:" + "\t" + "\t" + lblThree.Text + "\n");
rtxtReceipt.AppendText("Monthly Payment:" + "\t" + "\t" + lblPay.Text + "\n");
rtxtReceipt.AppendText("Total Payment:" + "\t" + "\t" + lblTot.Text + "\n");
rtxtReceipt.AppendText("--------------------------------------------------------" + "\t" + "\n");
rtxtReceipt.AppendText(" Official Receipt of SMEMCO " + "\n");
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
在制作数据库时,我观看了一个youtube视频。我一步一步地遵循它,但是我收到了错误。我也尝试在变量中加上“ +”,但这也没有用。我的计划是当用户单击添加按钮时,输入的数据和计算结果将存储到我的数据库表中。而是弹出该错误。我做错了什么?
错误消息:
答案 0 :(得分:0)
请勿在列名/ sql-parameters中使用空格。您也可以尝试将数据库的Id参数的Identity规范设置为true。