error ว่า Incorrect syntax near... แก้ยังงัยค่ะ คัยก้ได้ค่ะ ช่วยหนูหน่อยค่ะ แก้ Error ไม่ได้สักที
คัยก้ได้ค่ะ ช่วยหนูหน่อยค่ะ แก้error ไม่ได้สักที
int i;
for (i = 0; i <= lsvProductList.Items.Count - 1; i++)
{
sb.Remove(0, sb.Length);
sb.Append("INSERT INTO [Selling] (CustomerName,ProductID,Product,CountPD,Net)");
sb.Append(" VALUES (@CustomerName,@ProductID,@Product,@CountPD,@Net");
sqlSave = sb.ToString();
command.CommandText = sqlSave;
command.Parameters.Clear();
command.Parameters.Add("@CustomerName", SqlDbType.NVarChar).Value = txtCustomerName.Text;
command.Parameters.Add("@ProductID", SqlDbType.NChar).Value = lsvProductList.Items[i].SubItems[0].Text;
command.Parameters.Add("@Product", SqlDbType.NVarChar).Value = lsvProductList.Items[i].SubItems[1].Text;
command.Parameters.Add("@CountPD", SqlDbType.Int).Value = int.Parse(lsvProductList.Items[i].SubItems[3].Text);
command.Parameters.Add("@Net", SqlDbType.Money).Value = double.Parse(lblNet.Text);
command.ExecuteNonQuery();
}
ตรงที่ขีดเส้นใต้นั้นอ่าค่ะ มันแจ้งerror ว่า Incorrect syntax near '@Net'. หนูต้องแก้ยังงัยอ่าTag : - - - -
Date :
2010-01-17 15:58:39
By :
ling-keaw
View :
2510
Reply :
13
ลองเอา loop ออกแล้ว hard code item[i] เป็น item[0] ดูก่อนครับว่ายัง error อยู่ไหม
อันนี้แนะนำเฉยๆ ว่า command น่าจะประกาศไว้ใน loop จะได้ไม่ต้อง clear ค่าเวลาวน loop
sb เอาไว้นอก loop เพราะไม่มีการเปลี่ยนแปลงเวลาวน loop
และอีกอัน คำว่า คัย เขียนแบบนี้ครับ --> ใคร
ยังงัยค่ะ เขียนแบบนี้ครับ --> ยังไงคะ
Date :
2010-01-17 18:15:31
By :
tungman
ภาษาไทยใช้ให้ถูกต้องนะครับบ
Date :
2010-01-17 19:04:28
By :
Nameless
ค่ะๆๆๆ
แล้วที่บอกว่า "command น่าจะประกาศไว้ใน loop จะได้ไม่ต้อง clear ค่าเวลาวน loop"
ต้องเขียนยังไงอ่าค่ะ หนูมือใหม่อ่าค่ะ ไม่ค่อยได้เขียนโค้ดเท่าไหร่ แนะนำด้วยน่ะค่ะ
Date :
2010-01-17 19:27:53
By :
ling-keaw
Code (C#)
string sqlConnectionString = "Your connection string.";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO [Selling] ([CustomerName], [ProductID], [Product], [CountPD], [Net]) ");
sb.Append("VALUES (@CustomerName, @ProductID, @Product, @CountPD, @Net)");
string sqlSave = sb.ToString();
for (int i = 0; i < lsvProductList.Items.Count; i++)
{
SqlCommand command = new SqlCommand(sqlSave, sqlConnection);
command.Parameters.Add("@CustomerName", SqlDbType.NVarChar).Value = txtCustomerName.Text;
command.Parameters.Add("@ProductID", SqlDbType.NChar).Value = lsvProductList.Items[i].SubItems[0].Text;
command.Parameters.Add("@Product", SqlDbType.NVarChar).Value = lsvProductList.Items[i].SubItems[1].Text;
command.Parameters.Add("@CountPD", SqlDbType.Int).Value = int.Parse(lsvProductList.Items[i].SubItems[3].Text);
command.Parameters.Add("@Net", SqlDbType.Money).Value = double.Parse(lblNet.Text);
command.ExecuteNonQuery();
}
Date :
2010-01-17 19:37:16
By :
tungman
จากโค้ดต้นฉบับของคุณ หลัง @net คุณตก ) ไปอันหนึ่งน่ะเลย error (กลับไปดูที่โพสต์ไว้)
Date :
2010-01-17 19:40:32
By :
tungman
ได้แล้วค่ะ
ขอบคุณมากค่ะ
หาไม่เจอจริงๆค่ะ แย่จัง
Date :
2010-01-18 00:12:45
By :
ling-keaw
แล้วทำยังไงอ่าค่ะ
ถ้าเกิดว่าจะให้หัวตารางยังอยู่เหมือนเดิม หลังจากกดsave แล้ว
เพราะพอกดsave แล้วหัวตารางก้หายไปเลยค่ะ
ต้องเขียนโค้ดยังไงค่ะ ถ้าจะให้มันอยุ่เหมือนเดิม
หนูใช้ listviewน่ะค่ะ ในการแสดงข้อมูลในตาราง
ขอบคุณล่วงหน้าค่ะ
Date :
2010-01-18 00:15:57
By :
ling-keaw
โบราณว่าถ้าเงาหัวหายไปจะมีเคราะห์ ให้ไปสะเดาะเคราะห์ซะ
(มีปัญหาหลัง postback ให้ดู event ispostback)
Date :
2010-01-18 08:40:54
By :
tungman
หาไม่เจออ่าค่ะ
มันอยุ่ตรงไหนอ่าค่ะ
อย่าอำเล่นน่ะค่ะ
หนูไม่รู้จริงๆ
Date :
2010-01-18 14:26:11
By :
ling-keaw
งั้นเอาโค้ดมาดู
Date :
2010-01-18 14:44:12
By :
tungman
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace CarBusiness
{
public partial class Sell : Form
{
public Sell()
{
InitializeComponent();
}
SqlCommand command = new SqlCommand();
StringBuilder sb = new StringBuilder();
SqlConnection Conn = new SqlConnection();
SqlDataReader dr;
SqlTransaction tr;
private void Sell_Load(object sender, EventArgs e)
{
string strCon = "Data Source=.\\SQLExpress;Initial Catalog=car_business;Integrated Security=True";
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
MessageBox.Show("connect close");
}
Conn.ConnectionString =strCon;
Conn.Open();
lsvProductList.Columns.Add("รหัสสินค้า", 120, HorizontalAlignment.Left);
lsvProductList.Columns.Add("ชื่อสินค้า", 200, HorizontalAlignment.Left);
lsvProductList.Columns.Add("ราคาขาย", 80, HorizontalAlignment.Right);
lsvProductList.Columns.Add("จำนวน", 50, HorizontalAlignment.Right);
lsvProductList.Columns.Add("รวมเป็นเงิน", 100, HorizontalAlignment.Right);
lsvProductList.Columns.Add("สินค้าคงเหลือ", 150, HorizontalAlignment.Right);
lsvProductList.View = View.Details;
lsvProductList.GridLines = true;
lsvProductList.FullRowSelect = true;
txtAmount.ContextMenu = new ContextMenu();
txtProductID.ContextMenu = new ContextMenu();
this.txtCustomerName.Focus();
}
private void ClearCustomerData()
{
txtCustomerName.Text = "";
txtPhone.Text = "";
}
private void ClearProductData()
{
txtProductID.Text = "";
lblProductName.Text = "";
lblSalePrice.Text = "0";
txtAmount.Text = "1";
lblTotal.Text = "0";
lblbalance.Text = "";
}
private void CalculateTotal()
{
double Total;
Total = double.Parse(lblSalePrice.Text) * int.Parse(txtAmount.Text);
lblTotal.Text = Total.ToString("#,##0.00");
}
private void CalculateNet()
{
int i = 0;
double tmpNetTotal = 0;
for (i = 0; i <= lsvProductList.Items.Count - 1; i++)
{
tmpNetTotal += double.Parse(lsvProductList.Items[i].SubItems[4].Text);
}
lblNet.Text = tmpNetTotal.ToString("#,##0.00");
}
private void Balance()
{
double balance;
balance = int.Parse(lblbalance.Text) - int.Parse(txtAmount.Text);
lblbalance.Text = balance.ToString("###");
//sb.Remove(0, sb.Length);
//sb.Append("UPDATE Whouse SET ProductBalance=ProductBalance")
}
private void txtAmount_KeyDown(object sender, KeyEventArgs e)
{
if (txtAmount.Text == "")
{
return;
}
if (e.KeyCode == Keys.Enter)
{
sb.Remove(0, sb.Length);
sb.Append("SELECT ProductID,Product,Price,ProductBalance");
sb.Append(" FROM Whouse");
sb.Append(" WHERE (ProductID=@ProductID)");
string sqlProduct = sb.ToString();
DataTable dtProduct;
command.CommandType = CommandType.Text;
command.CommandText = sqlProduct;
command.Parameters.Clear();
command.Parameters.Add("@ProductID", SqlDbType.Int).Value = int.Parse(txtProductID.Text);
command.Connection = Conn;
dr = command.ExecuteReader();
if (dr.HasRows)
{
dtProduct = new DataTable();
dtProduct.Load(dr);
txtProductID.Text = dtProduct.Rows[0]["ProductID"].ToString();
lblProductName.Text = dtProduct.Rows[0]["Product"].ToString();
lblSalePrice.Text = dtProduct.Rows[0]["Price"].ToString();
lblbalance.Text = dtProduct.Rows[0]["ProductBalance"].ToString();
CalculateTotal();
Balance();
txtAmount.Focus();
}
else
{
MessageBox.Show("รหัสสินค้าที่คุณป้อน ไม่ถูกต้อง !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information);
ClearProductData();
txtProductID.Focus();
}
dr.Close();
}
tr = Conn.BeginTransaction();
sb.Remove(0, sb.Length);
sb.Append("UPDATE Whouse SET ProductBalance='"+lblbalance+"'");
sb.Append("WHERE ProductID=@ProductID");
string sqlUpdate = sb.ToString();
command.CommandType = CommandType.Text;
command.CommandText = sqlUpdate;
command.Connection = Conn;
command.Transaction = tr;
command.Parameters.Clear();
//command.Parameters.Add("@ProductID", SqlDbType.NVarChar).Value = txtProductID.Text;
command.Parameters.Add("@ProductBalance", SqlDbType.Int).Value = lblbalance.Text;
command.ExecuteNonQuery();
tr.Commit();
}
private void cmdClear_Click(object sender, EventArgs e)
{
lsvProductList.Items.Clear();
lblNet.Text = "0";
txtProductID.Focus();
ClearCustomerData();
ClearProductData();
this.txtCustomerName.Focus();
}
private void cmdAdd_Click(object sender, EventArgs e)
{
if ((txtProductID.Text == "") || (lblProductName.Text == ""))
{
txtProductID.Focus();
return;
}
if (txtAmount.Text == "0")
{
txtAmount.Focus();
return;
}
int i = 0;
ListViewItem lvi;
int tmpProductID = 0;
for (i = 0; i <= lsvProductList.Items.Count - 1; i++)
{
tmpProductID = int.Parse(lsvProductList.Items[i].SubItems[0].Text);
if (int.Parse(txtProductID.Text.Trim()) == tmpProductID)
{
MessageBox.Show("คุณเลือกสินค้าซ้ำกัน กรุณาเลือกใหม่ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information);
ClearProductData();
txtProductID.Focus();
txtProductID.SelectAll();
return;
}
}
string[] anyData;
anyData = new string[] { txtProductID.Text, lblProductName.Text, lblSalePrice.Text, txtAmount.Text, lblTotal.Text, lblbalance.Text };
lvi = new ListViewItem(anyData);
lsvProductList.Items.Add(lvi);
CalculateNet();
ClearProductData();
cmdSave.Enabled = true;
txtProductID.Focus();
}
private void lsvProductList_DoubleClick(object sender, EventArgs e)
{
int i = 0;
for (i = 0; i <= lsvProductList.SelectedItems.Count - 1; i++)
{
ListViewItem lvi;
lvi = lsvProductList.SelectedItems[i];
lsvProductList.Items.Remove(lvi);
}
CalculateNet();
txtProductID.Focus();
}
private void cmdSave_Click(object sender, EventArgs e)
{
if (txtCustomerName.Text== "")
{
MessageBox.Show("กรุณาป้อนชื่อลูกค้า !!!", "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtCustomerName.Focus();
return;
}
if (lsvProductList.Items.Count > 0)
{
if (MessageBox.Show("คุณต้องการบันทึกรายการสั่งซื้อสินค้า ใช่หรือไม่ ", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
{
tr = Conn.BeginTransaction();
sb.Remove(0, sb.Length);
sb.Append("INSERT INTO SellOrder (CustomerName,SellDate,TotalPrice)");
sb.Append(" VALUES (@CustomerName,@SellDate,@TotalPrice)");
string sqlSave = sb.ToString();
command.CommandType = CommandType.Text;
command.CommandText = sqlSave;
command.Connection = Conn;
command.Transaction = tr;
command.Parameters.Clear();
command.Parameters.Add("@CustomerName", SqlDbType.NVarChar).Value = txtCustomerName.Text;
command.Parameters.Add("@SellDate", SqlDbType.DateTime).Value = DateTime.Today;
command.Parameters.Add("@TotalPrice", SqlDbType.Money).Value = lblNet.Text;
command.ExecuteNonQuery();
sb.Remove(0, sb.Length);
sb.Append("INSERT INTO [Selling] (CustomerName,ProductID,Product,CountPD,Net)");
sb.Append(" VALUES (@CustomerName,@ProductID,@Product,@CountPD,@Net)");
sqlSave = sb.ToString();
int i;
for (i = 0; i <= lsvProductList.Items.Count - 1; i++)
{
command.CommandText = sqlSave;
command.Parameters.Clear();
command.Parameters.Add("@CustomerName", SqlDbType.NVarChar).Value = txtCustomerName.Text;
command.Parameters.Add("@ProductID", SqlDbType.NChar).Value = lsvProductList.Items[i].SubItems[0].Text;
command.Parameters.Add("@Product", SqlDbType.NVarChar).Value = lsvProductList.Items[i].SubItems[1].Text;
command.Parameters.Add("@CountPD", SqlDbType.Int).Value = int.Parse(lsvProductList.Items[i].SubItems[3].Text);
command.Parameters.Add("@Net", SqlDbType.Money).Value = double.Parse(lblNet.Text);
command.ExecuteNonQuery();
}
tr.Commit();
MessageBox.Show("บันทึกรายการสั่งซื้อสินค้า เรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
lsvProductList.Clear();
ClearCustomerData();
ClearProductData();
lblNet.Text = "0";
this.txtCustomerName.Focus();
}
}
}
}
}
นี่ค่ะ โค้ดทั้งหมดเลย
Date :
2010-01-18 16:17:28
By :
ling-keaw
Code (C#)
private void cmdSave_Click(object sender, EventArgs e)
{
....
....
lsvProductList.Clear(); //เอาออก
....
}
Date :
2010-01-18 16:30:42
By :
tungman
ทำได้แล้วค่ะ แต่หนูไม่ได้ไปลบ lsvProductList.Clear(); ออกน่ะค่ะ
แต่หนู พิมคำสั่งเพิ่ม ให้ไปเรียกใช้มาอ่าค่ะ ขอบคุณมากค่ะคุณพี่ tungman อิอิ
private void ClearListView()
{
lsvProductList.Columns.Add("รหัสสินค้า", 120, HorizontalAlignment.Left);
lsvProductList.Columns.Add("ชื่อสินค้า", 200, HorizontalAlignment.Left);
lsvProductList.Columns.Add("ราคาขาย", 80, HorizontalAlignment.Right);
lsvProductList.Columns.Add("จำนวน", 50, HorizontalAlignment.Right);
lsvProductList.Columns.Add("รวมเป็นเงิน", 100, HorizontalAlignment.Right);
lsvProductList.Columns.Add("สินค้าคงเหลือ", 150, HorizontalAlignment.Right);
lsvProductList.View = View.Details;
lsvProductList.GridLines = true;
lsvProductList.FullRowSelect = true;
}
Date :
2010-01-18 16:48:34
By :
ling-keaw
Load balance : Server 01