• Home
  • Tutorials
  • API
  • Change Log
  • Github

    Show / Hide Table of Contents
    • Home
    • Attributes
    • Generating SQL
      • Object To Sql
      • DataTable To Sql
      • Readable Sql

    Creating Readable Sql

    By default all sql is generated as parameterized query as they should be but there may be times where you want to create non-parameterized queries. This article will show you how to do that

    Create Readable Sql Using ObjectToSql Class

    public class Employee {
      public string FirstName { get; set; }
      public string LastName { get; set; }
    }
    
    var obj2Sql = new Services.ObjectToSql(DataBaseType.SqlServer);
    // create an object you want to convert to sql
    var employee = new Employee();
    
    // create dbparameters from my object
    var dbParameters = obj2Sql.BuildDbParameterList(employee, (s, o) => new SqlParameter(s, o));
    // create my parameterized sql based on my specified action type
    var insertSql = obj2Sql.BuildQuery<Employee>(ActionType.Insert);
    // convert my parameterize sql to be readable
    var readAbleSql = obj2Sql.SqlSyntaxHelper.ConvertParameterSqlToReadable(dbParameters, insertSql, Encoding.UTF8);
    // unit test
    Assert.AreEqual(readAbleSql, "INSERT INTO Employee ([FirstName],[LastName]) VALUES (NULL,NULL)");
    

    Create Readable Sql Using DataTableToSql Class

     // create an datatable you want to convert to sql
      var dt = new DataTable("Employee");
      dt.Columns.Add("IdentityKey", typeof(int));
      dt.Columns["IdentityKey"].AutoIncrement = true;
      dt.PrimaryKey = new[] { dt.Columns["IdentityKey"] };
      dt.Columns.Add("FirstName", typeof(string));
      dt.Columns.Add("LastName", typeof(string));
      dt.Rows.Add(1, "John", "Doe");
    
    var dt2Sql = new Services.DataTableToSql(DataBaseType.SqlServer);
    
    // create dbparameters from my datarow
    var dbParameters = dt2Sql.BuildDbParameterList(dt.Rows[0], (s, o) => new SqlParameter(s, o));
    
    // create my parameterized sql based on my specified action type
    var insertSql = dt2Sql.BuildQuery(dt, ActionType.Insert);
    
    // convert my parameterize sql to be readable
    var readAbleSql = dt2Sql.SqlSyntaxHelper.ConvertParameterSqlToReadable(dbParameters, insertSql, Encoding.UTF8);
    // unit test
    Assert.AreEqual(readAbleSql, "INSERT INTO Employee ([FirstName],[LastName]) VALUES ('John','Doe')");
    
    • Improve this Doc
    Back to top Copyright © 2019 Joseph McNeal Jr