0

私は php コードを持っています。ここにコードがあります。それを .NET に変換するつもりですが、ある時点で問題が発生しています。

function processInput($conn, $MessageArray, $mobilenumber, $date, $odd)
{

$strSQLUSER="SELECT * FROM tbl_tiduser WHERE username='".addslashes($MessageArray[0])."' AND stat!='1' AND stat!='4'";

$result_user=odbc_exec($conn,$strSQLUSER) or die("Could not connect to database");

変換された .NET コードは次のとおりです

public class ProcessInput
{   
    private string msg_arr;
    private string MooseSeenInput(string MobileNo,string Date,string odd,params Array[] msg_arr)
    {


 SqlCommand com = new SqlCommand("SELECT * FROM tbl_tiduser WHERE username=@username AND stat!='1' AND stat!='4'", mycon);
                    com.Parameters.AddWithValue("@username",username);
                    using (SqlDataReader reader = com.ExecuteReader())

     // whats the next part need to come here ???

}

これは不完全です。コンパイルするつもりはありません....

4

3 に答える 3

3
private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

于 2012-06-11T08:25:18.773 に答える
1

私はすべて簡単です。class私が読んでいるレコードを反映したものを書きます。

public class User {
    public int Id {get;set;}
    public string Name {get;set;}
}

そして「dapper」を使用します:

var user = myCon.Query<User>(
  "SELECT * FROM tbl_tiduser WHERE username=@username AND stat not in ('1','4')",
  new {username}).SingleOrDefault();

if(user == null) { /* not found, presumably throw an exception */ }

string name = user.Name; // etc

そうすれば、コマンド、リーダー、パラメーターなどをいじる必要はありません(どのようにusernameしてdbパラメーターがきれいに作成されているかを確認してください)。

于 2012-06-11T08:38:27.953 に答える
1

次のようなものを使用して、目的の列を取得します。

string username = null;
using (SqlDataReader reader = com.ExecuteReader()) {
    if (reader.read()) {
        username = (string)reader["mydbcolumnname"];
    }
    reader.Close();
}

すべての結果行を取得する場合 (それらをステップ実行するのではなく)、通常は(リーダーの代わりに) SqlDataAdapterを使用してDataSetを埋めることに注意してください。

string username;
using (SqlDataAdapter adapter = new SqlDataAdapter(com))
{
    using (DataSet ds) 
    {
        adapter.Fill(ds);
        username = (string)ds.Tables[0].Rows[0]["mycolumnname"];
    }
}
于 2012-06-11T08:27:02.070 に答える