ตอนแรก ผมใช้ vs2013 เขียนโดยโค๊ดนี้ก็ได้นะครับแต่พอ format เครื่องใหม่ ใช้ vs2010 เขียนบ้างกลับพบโค๊ด error ครับ
พอจะมีวิธีแก้ไหมครับ insert statement น่าจะถูกแล้วไหมครับ
The name "af" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.
Code (VB.NET) Code (C#)
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.SqlClient;
namespace Accounting
{
public partial class allowance : Form
{
private string backvalue;
public string BackedValue
{
get { return backvalue; }
set { backvalue = value; }
}
public allowance()
{
InitializeComponent();
}
private void label3_Click(object sender, EventArgs e)
{
}
private void allowance_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection objConn = new SqlConnection();
SqlCommand objCmd = new SqlCommand();
//ประกาศตัวแปร ที่ใช้ได้ใน button นี้
String strConnString, strSQL;
//
strConnString = "Server=XXXX;UID=XXXXX;PASSWORD=XXXX;database=XXXX;Max Pool Size=400;Connect Timeout=600;";
objConn = new System.Data.SqlClient.SqlConnection(strConnString); //systax sql แบบเว็บ
objConn.Open();
//SQL ทำงาน
strSQL = "INSERT INTO FLST_EXPENSE_ALLOWANCE (allowance_date,allowance_work_order_id,allowance_driver_name,allowance_driver_id,allowance_start_job,allowance_end_job,allowance_wait_id,allowance_rate,allowance_bonus,allowance_remark,allowance_fivety_percent,allowance_twenty_percent) " +
"VALUES (@adate,@awid,@adname,@adid,@asj,@aej,@awi,@ar,@ab,@remark,af,at)";
objCmd = new SqlCommand(strSQL, objConn); //systax sql แบบ winform
//Insert ค่าจาก Textbox ลง Parameter ที่ Declare มาจาก strSQL
objCmd.Parameters.Add(new SqlParameter("@adate", allowance_date.Text));
objCmd.Parameters.Add(new SqlParameter("@awid", tb_worder.Text));
objCmd.Parameters.Add(new SqlParameter("@adname", tb_dname.Text));
objCmd.Parameters.Add(new SqlParameter("@adid", tb_did.Text));
objCmd.Parameters.Add(new SqlParameter("@asj", tbstart.Text));
objCmd.Parameters.Add(new SqlParameter("@aej", tbstop.Text));
objCmd.Parameters.Add(new SqlParameter("@awi", tbwait.Text));
objCmd.Parameters.Add(new SqlParameter("@ar", tbrate.Text));
objCmd.Parameters.Add(new SqlParameter("@ab", cbo_bonus.Text));
//objCmd.Parameters.AddWithValue("@ar", int.Parse(tbrate.Text.Trim()));
objCmd.Parameters.Add(new SqlParameter("@remark", tb_remark.Text));
//ประกาศตัวแปล พร้อมใส่ค่า
string sqlquery = ("SELECT TOP 1 * FROM FLST_EXPENSE_ALLOWANCE ORDER BY ALLOWANCE_ID DESC");
SqlCommand command = new SqlCommand(sqlquery, objConn);
if (this.check_half.Checked == true)
{
double anInteger;
double anInteger2;
anInteger = Convert.ToDouble(tbrate.Text);
anInteger2 = anInteger * 0.5;
objCmd.Parameters.AddWithValue("@af", anInteger2);
lbl_half.Text = "โบนัสเพิ่ม"+anInteger2.ToString();
}
else
{
this.lbl_half.Text = "ไม่เพิ่มโบนัส";
objCmd.Parameters.AddWithValue("@af", DBNull.Value);
}
if (this.check_twenty.Checked == true)
{
double anInteger;
double anInteger2;
anInteger = Convert.ToDouble(tbrate.Text);
anInteger2 = anInteger * 0.2;
objCmd.Parameters.AddWithValue("@at", anInteger2);
lbl_twenty.Text = "โบนัสเพิ่ม" + anInteger2.ToString();
}
else
{
this.lbl_twenty.Text = "ไม่เพิ่มโบนัส";
objCmd.Parameters.AddWithValue("@at", DBNull.Value);
}
DialogResult dialogResult = MessageBox.Show("คุณต้องการจะเพิ่มข้อมูลเบี้ยเลี้ยงใช่หรือไม่", "Some Title", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
objCmd.ExecuteNonQuery();
allowance_id.Text = command.ExecuteScalar().ToString();
MessageBox.Show("เพิ่มข้อมูลเรียบร้อย");
}
else if (dialogResult == DialogResult.No)
{
MessageBox.Show("ยกเลิกการเพิ่มข้อมูล");
}
objCmd = null;
objConn.Close();
objConn = null;
}
}
}
ปล .ไม่ได้ก๊อบโค๊ดมานะครับ เขียนขึ้นใหม่
Tag : .NET, Win (Windows App), C#, VS 2010 (.NET 4.x)