Проблема с использованием sqlconnection в asp.net c # - PullRequest
0 голосов
/ 21 января 2011

Мой код:

String dbDate = DateTime.ParseExact(TextBox3.Text, "dd/mm/yyyy", null).ToString("yyyy-mm-dd");

SqlConnection MyConnection = new SqlConnection("Data Source=localhost;Initial Catalog=hcgoa;User Id=sa;Password=;");
MyConnection.Open();
String MyString = "select notice from notice_aspx where fil_no=? and orderdate=?";
SqlCommand MyCmd = new SqlCommand(MyString, MyConnection);
MyCmd.Parameters.AddWithValue("?", HiddenField4.Value);
MyCmd.Parameters.AddWithValue("?", dbDate);
using (SqlDataReader MyReader4 = MyCmd.ExecuteReader())
{
    //**
    if (MyReader4.Read())
    {

        String MyString1 = "UPDATE notice_aspx SET notice=? where fil_no=? AND orderdate=?";
        SqlCommand MyCmd1 = new SqlCommand(MyString1, MyConnection);
        MyCmd1.Parameters.AddWithValue("?", Editor1.Content.ToString());
        MyCmd1.Parameters.AddWithValue("?", HiddenField4.Value.ToString());
        MyCmd1.Parameters.AddWithValue("?", dbDate);
        MyCmd1.ExecuteNonQuery();
    }
    else
    {.........

ОШИБКА

Exception Details: System.Data.SqlClient.SqlException: Line 1: Incorrect syntax near '?'.
Line 1: Incorrect syntax near '?'.

Как исправить ошибку.Это потому, что я не могу использовать '?'?Пожалуйста, помогите разобраться с проблемой.

1 Ответ

5 голосов
/ 21 января 2011

Я считаю, что для SQL-сервера вам нужно использовать именованные параметры вместо позиционные параметры.См. Документацию для SqlCommand.Parameters для примера.Таким образом, ваш SQL будет:

select notice from notice_aspx where fil_no=@fil and orderdate=@orderdate

(и вы затем укажите эти имена при добавлении параметров).

Обратите внимание, что это не имеет ничего общего с ASP.NET - вам следуетбыть в состоянии проверить это в небольшом консольном приложении.(У вас также должны быть using операторы для вашего соединения и команды, кстати.)

...