1

SQLServerに接続されているASP.NetWebサイトがあります。以前のプロジェクト(VB)では、次のコードを使用してデータベースに書き込みました。

Dim connectionString As String = ConfigurationManager.ConnectionStrings("DBConnection").ConnectionString
                Dim insertSql As String = "INSERT INTO tblProfile(UserID, UserName, Title, FirstName, LastName, MiddleName, DateofBirth, Gender, HomePhoneNumber, MobilePhoneNumber, Address, StreetName, StreetType, Suburb, PostCode, State, Country) VALUES(@UserID, @UserName, @Title, @FirstName, @LastName, @MiddleName, @DateofBirth, @Gender, @HomePhoneNumber, @MobilePhoneNumber, @Address, @StreetName, @StreetType, @Suburb, @PostCode, @State, @Country)"

                Using myConnection As New SqlConnection(connectionString)
                    myConnection.Open()
                    Dim myCommand As New SqlCommand(insertSql, myConnection)
                    myCommand.Parameters.AddWithValue("@UserID", newUserGuid)
                    myCommand.Parameters.AddWithValue("@UserName", newUserName)
                    myCommand.Parameters.AddWithValue("@Title", Title.SelectedItem.Text)
                    myCommand.Parameters.AddWithValue("@FirstName", FirstName.Text)
                    myCommand.Parameters.AddWithValue("@LastName", LastName.Text)
                    If MiddleNames.Text = String.Empty Then
                        myCommand.Parameters.AddWithValue("@MiddleName", DBNull.Value)
                    Else
                        myCommand.Parameters.AddWithValue("@MiddleName", MiddleNames.Text)
                    End If
                    DateofBirth.Text = YearofBirth.Text + "-" + MonthofBirth.Text + "-" + DayofBirth.Text
                    myCommand.Parameters.AddWithValue("@DateofBirth", DateofBirth.Text)
                    myCommand.Parameters.AddWithValue("@Gender", Gender.SelectedItem.Text)
                    If HomePhoneNumber.Text = String.Empty Then
                        myCommand.Parameters.AddWithValue("@HomePhoneNumber", DBNull.Value)
                    Else
                        myCommand.Parameters.AddWithValue("@HomePhoneNumber", HomePhoneNumber.Text)
                    End If
                    If MobilePhoneNumber.Text = String.Empty Then
                        myCommand.Parameters.AddWithValue("@MobilePhoneNumber", DBNull.Value)
                    Else
                        myCommand.Parameters.AddWithValue("@MobilePhoneNumber", MobilePhoneNumber.Text)
                    End If
                    myCommand.Parameters.AddWithValue("@Address", AddressNumber.Text)
                    myCommand.Parameters.AddWithValue("@StreetName", StreetName.Text)
                    myCommand.Parameters.AddWithValue("@StreetType", StreetType.SelectedItem.Text)
                    myCommand.Parameters.AddWithValue("@Suburb", Suburb.Text)
                    myCommand.Parameters.AddWithValue("@PostCode", Postcode.Text)
                    myCommand.Parameters.AddWithValue("@State", State.SelectedItem.Text)
                    myCommand.Parameters.AddWithValue("@Country", Country.SelectedItem.Text)

                    myCommand.ExecuteNonQuery()
                    myConnection.Close()
                End Using

C#に変更しましたが、このコードの変更に問題があります。これまでのところ:

String connectionString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;

String insertSql = "INSERT INTO tbl_UserProfiles VALUES(@UserID, @FirstName, @LastName, @YearOfBirth, @Country)";
SqlCommand myCommand = new SqlCommand(insertSql, connectionString);
myCommand.Parameters.AddWithValue("@UserID", newUserGuid);
myCommand.Parameters.AddWithValue("@FirstName", FirstNameTB.Text);
myCommand.Parameters.AddWithValue("@LastName", LastNameTB.Text);
myCommand.Parameters.AddWithValue("@YearOfBirth", YearDDL.SelectedItem.Text);
myCommand.Parameters.AddWithValue("@Country", CountryDDL.SelectedItem.Text);

try
{
    connectionString.Open();
    myCommand.ExecuteNonQuery();
}

finally
{
    connectionString.Close();
}

いくつかのチュートリアルサイトと私自身の以前のコードを見た後、私が作成しようとしました。しかし、私はここで何か間違ったことをしていると思います:

String connectionString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;

波状の赤い下線が表示されます。

4

3 に答える 3

2

これを試してください....使用SqlConnection

myConnection As New SqlConnection(connectionString) を使用すると、この行が C# に変換されませんでした

 String connectionString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
 SqlConnection con = new Sqlconnection(connectionString);
            String insertSql = "INSERT INTO tbl_UserProfiles VALUES(@UserID, @FirstName, @LastName, @YearOfBirth, @Country)";
            SqlCommand myCommand = new SqlCommand(insertSql, con);
            myCommand.Parameters.AddWithValue("@UserID", newUserGuid);
            myCommand.Parameters.AddWithValue("@FirstName", FirstNameTB.Text);
            myCommand.Parameters.AddWithValue("@LastName", LastNameTB.Text);
            myCommand.Parameters.AddWithValue("@YearOfBirth", YearDDL.SelectedItem.Text);
            myCommand.Parameters.AddWithValue("@Country", CountryDDL.SelectedItem.Text);

            try
            {
                con.Open();
                myCommand.ExecuteNonQuery();

            }

            finally
            {
                con.Close();
            }
于 2012-08-16T11:54:05.750 に答える
1

接続文字列を試みているようですOpen():)

翻訳

  Using myConnection As New SqlConnection(connectionString)
                    myConnection.Open()
      Dim myCommand As New SqlCommand(insertSql, myConnection)

  using (var myConnection = new SqlConnection(connectionString))
  using (var myCommand = new SqlCommand(insertSql, myConnection))
  {
      myConnection.Open();
      ...
      myCommand.ExecuteNonQuery();
  }

C# で使用するSqlConnectionと、成功か失敗かに関係なく、両方のオブジェクトで呼び出されるSqlCommandことが保証されます (および接続のクローズ、クリーンアップなど)。Dispose()

于 2012-08-16T11:56:57.897 に答える
0

あなたが持っていることを確認してください

using System.Configuration 

ファイルの上部にあります。また、web.config ファイルには構成 > configSections > configSections セクションが含まれていますか?

于 2012-08-16T11:57:33.450 に答える