What SQL is being sent from a SqlCommand object?

You need to use the SQL Server Profiler to watch what comes from the application. I believe it can show you the SQL and the parameters, which you will need to see.

2 This tool should be your new best friend. – Bryan Apr 10 '10 at 2:36 this is the best there is, Microsoft uses some fool stored procedure rather than generating actual SQL statements. This makes things insane for developers (me).

Why must they do everything so backwards! – Justin808 May 5 '10 at 2:58 Which stored procedure are you referring to? – John Saunders May 5 '10 at 4:50.

While you will not be able to plug is into something like Enterprise Manager to run it works for logging. Public static string ToReadableString(this IDbCommand command) { StringBuilder builder = new StringBuilder(); if (command. CommandType == CommandType.

StoredProcedure) builder. AppendLine("Stored procedure: " + command. CommandText); else builder.

AppendLine("Sql command: " + command. CommandText); if (command.Parameters. Count > 0) builder.

AppendLine("With the following parameters. "); foreach (IDataParameter param in command. Parameters) { builder.

AppendFormat( " Paramater {0}: {1}", param. ParameterName, (param. Value == null?"NULL" : param.Value.ToString())).AppendLine(); } return builder.ToString(); }.

Check out this question it should provide what you are looking for. stackoverflow.com/questions/265192/how-t....

Whilst not perfect, here's something I knocked up something for TSQL - could be easily tweaked for other flavours... If nothing else it will give you a start point for your own improvements :) This does an OK job on data types and output parameters etc similar to using "execute stored procedure" in SSMS. We mostly used SPs so the "text" command doesn't account for parameters etc public static String ParameterValueForSQL(this SqlParameter sp) { String retval = ""; switch (sp. SqlDbType) { case SqlDbType.

Char: case SqlDbType. NChar: case SqlDbType. NText: case SqlDbType.

NVarChar: case SqlDbType. Text: case SqlDbType. Time: case SqlDbType.

VarChar: case SqlDbType. Xml: case SqlDbType. Date: case SqlDbType.

DateTime: case SqlDbType. DateTime2: case SqlDbType. DateTimeOffset: retval = "'" + sp.Value.ToString().

Replace("'", "''") + "'"; break; case SqlDbType. Bit: retval = (sp.Value. ToBooleanOrDefault(false))?"1" : "0"; break; default: retval = sp.Value.ToString().

Replace("'", "''"); break; } return retval; } public static String CommandAsSql(this SqlCommand sc) { StringBuilder sql = new StringBuilder(); Boolean FirstParam = true; sql. AppendLine("use " + sc.Connection. Database + ";"); switch (sc.

CommandType) { case CommandType. StoredProcedure: sql. AppendLine("declare @return_value int;"); foreach (SqlParameter sp in sc.

Parameters) { if ((sp. Direction == ParameterDirection. InputOutput) || (sp.

Direction == ParameterDirection. Output)) { sql. Append("declare " + sp.

ParameterName + "\t" + sp.SqlDbType.ToString() + "\t= "); sql. AppendLine(((sp. Direction == ParameterDirection.

Output)? "null" : sp. ParameterValueForSQL()) + ";"); } } sql.

AppendLine("exec " + sc. CommandText + ""); foreach (SqlParameter sp in sc. Parameters) { if (sp.

Direction! = ParameterDirection. ReturnValue) { sql.

Append((FirstParam)? "\t" : "\t, "); if (FirstParam) FirstParam = false; if (sp. Direction == ParameterDirection.

Input) sql. AppendLine(sp. ParameterName + " = " + sp.

ParameterValueForSQL()); else sql. AppendLine(sp. ParameterName + " = " + sp.

ParameterName + " output"); } } sql. AppendLine(";"); sql. AppendLine("select 'Return Value' = convert(varchar, @return_value);"); foreach (SqlParameter sp in sc.

Parameters) { if ((sp. Direction == ParameterDirection. InputOutput) || (sp.

Direction == ParameterDirection. Output)) { sql. AppendLine("select '" + sp.

ParameterName + "' = convert(varchar, " + sp. ParameterName + ");"); } } break; case CommandType. Text: sql.

AppendLine(sc. CommandText); break; } return sql.ToString(); } this generates output along these lines... use dbMyDatabase; declare @return_value int; declare @OutTotalRows BigInt = null; exec spMyStoredProc @InEmployeeID = 1000686 , @InPageSize = 20 , @InPage = 1 , @OutTotalRows = @OutTotalRows output ; select 'Return Value' = convert(varchar, @return_value); select '@OutTotalRows' = convert(varchar, @OutTotalRows).

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions