0

T から sql テーブルを作成しようとしていますが、適切な c# 型を適切な sql 型にするのに問題があります。

ここに私の方法があります、

public static void CreateSqlTableFromT<T>(string connectionString)  where T : new()
        {
            IList<PropertyInfo> properties = typeof(T).GetProperties().ToList();

            StringBuilder query = new StringBuilder();
            query.Append("CREATE TABLE ");
            query.Append(typeof(T).Name);
            query.Append(" ( ");

            for (int i = 0; i < properties.Count; i++)
            {
                query.Append(properties[i]);
                query.Append(" ");
                query.Append(properties[i].GetType());
                query.Append(", ");
            }

            if (properties.Count > 1) { query.Length -= 2; }
            query.Append(")");
            using (var con=new SqlConnection(connectionString))
            {
                con.Open();
                SqlCommand createTableCommand = new SqlCommand(query.ToString(), con);
                createTableCommand.ExecuteNonQuery();
            }
        }

この行では、C# 変数の型を同等の SQL 型に変換します。

query.Append(properties[i].GetType());

多くのifステートメントを実行することなく、ac#タイプから一致するsqlタイプを取得する方法はc#にありますか?

たとえば、ac# decimal はお金に変換する必要があります。

4

0 に答える 0