PDA

View Full Version : سوال: تقاضای کمک کوچیک در مورد کدنویسی و ارورIncorrect syntax near '145'.



mahan206
دوشنبه 29 دی 1393, 11:06 صبح
سلام دوستان من یه سیستم نظر سنجی درست کردم حالا میخوام جوری درستش کنم که هر ipفقط یک بار بتونه شرکت کنه و این کد رو نوشتم. public void AddPolls(int q,int o ,string ipp)
{
SqlConnection conip = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
SqlCommand cmdip = new SqlCommand("SELECT COUNT(*) FROM Polls_Votes WHERE (QuestionID = " + q + ") AND (UserName = " + ipp +")", conip);
cmdip.Connection = conip;
conip.Open();
SqlDataReader drip = cmdip.ExecuteReader();

if (drip.Read()) {
lasteror = "فقط یکبار میتوانید شرکت کنید";
}
else
{

try
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("INSERT INTO [Polls_Votes] ([QuestionID], [OptionID], [UserName]) VALUES (@QuestionID, @OptionID,@UserName)", con);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();

cmd.Parameters.Add("QuestionID", SqlDbType.Int).Value = q;
cmd.Parameters.Add("OptionID", SqlDbType.Int).Value = o;
cmd.Parameters.Add("UserName", SqlDbType.NVarChar).Value = ipp;


cmd.ExecuteNonQuery();
con.Close();

lasteror = "رای شما ثبت شد";
}
catch
{
lasteror = "Eroor Post";
}

}

conip.Close();

}
تو فیلد usernameبانکمم ippکه همون ip کسی که رای میده رو ذخیره کردم.
حالا من دستور سلکت رو چطور بنویسم که این ارور نیاد و جواب بده ای پی منم مثلا 192.168.145.30 این ارور رو میده
Incorrect syntax near '145'.

mahan206
سه شنبه 30 دی 1393, 10:17 صبح
کسی نیست کمکم کنه

ahmad156
سه شنبه 30 دی 1393, 10:32 صبح
خط سوم کدتون رو اصلاح کنین.(IP رو به عنوان String بفرستین)

SqlCommand cmdip = new SqlCommand("SELECT COUNT(*) FROM Polls_Votes WHERE (QuestionID = " + q + ") AND (UserName = '" + ipp +"')", conip);

mahan206
چهارشنبه 01 بهمن 1393, 10:14 صبح
تشکر دوست عزیز یه دنیا ممنون کد رو عوض کردم اما الان من رکوردهای توی بانک رو حذف کردم اما بازم میزنه شما فقط یع بار میتونید شرکت کنید.مشکل دیگه ای تو کدهام هست؟
کلا یه رکورد اضافه کردم و توش یه ای پی دلخواه گزاشتم بعد اومدم همون ای پی رو تو شرطم گزاشتم
WHERE (QuestionID = " + q + ") AND (UserName = '192.168.1.1')"

اما بازم جواب نمیده و میزنه همیشه میزنه شما شرکت کردین تو نظر سنجی کلا انگار شرطه اعمال نمیشه درست

mahan206
شنبه 04 بهمن 1393, 14:21 عصر
ذوستان من به جواب نرسیدم ممنون میشم کسی کمکم کنه