Answered by:
Concatenate Issue,.

Question
-
User1977787504 posted
If chkPFCI.Checked And chkPFD.Checked Then cmd.CommandText = "Delete from FinanceData Delete from FinancePeriod " ElseIf chkPFCI.Checked Then cmd.CommandText = "Delete from FinancePeriod " ElseIf chkPFD.Checked Then cmd.CommandText = "Delete from FinanceData " End If cmd.CommandText = "update SuperAdminSettingsArea set Value=@GP where ID=1 " & "update SuperAdminSettingsArea set Value=@VRL where ID=2 " & "update SuperAdminSettingsArea set Value=@IC where ID=3 " & "update SuperAdminSettingsArea set Value=@RS where ID=5 " & "update SuperAdminSettingsArea set Value=@PVD where ID=6 " & "update SuperAdminSettingsArea set Value=@CR where ID=4 " & "update SuperAdminSettings set Name=@Name, Value=@URL where ID=1 and AreaID=4 " cmd.Parameters.AddWithValue("@GP", htData("GroupPermissions")) cmd.Parameters.AddWithValue("@VRL", htData("ViewRequestLicenses")) cmd.Parameters.AddWithValue("@IC", htData("InsightsCategories")) cmd.Parameters.AddWithValue("@RS", htData("ReportSettings")) cmd.Parameters.AddWithValue("@CR", htData("CustomReportsLink")) cmd.Parameters.AddWithValue("@Name", htData("ReportName")) cmd.Parameters.AddWithValue("@URL", htData("ReportURL")) cmd.Parameters.AddWithValue("@PVD", htData("PurgeDocumentVersionsLink"))
I have to concatenate
cmd.CommandText,
Friday, December 13, 2013 9:14 AM
Answers
-
User-1509636757 posted
I want to use commandtext, yeah i know that was recommended to use SP ,but here we need to use command text with sql query,Try adding semicolon after every statement:
If chkPFCI.Checked And chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData Delete from FinancePeriod; " ElseIf chkPFCI.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinancePeriod; " ElseIf chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData; " End If cmd.CommandText = cmd.CommandText & "update SuperAdminSettingsArea set Value=@GP where ID=1; " & "update SuperAdminSettingsArea set Value=@VRL where ID=2; " & "update SuperAdminSettingsArea set Value=@IC where ID=3; " & "update SuperAdminSettingsArea set Value=@RS where ID=5; " & "update SuperAdminSettingsArea set Value=@PVD where ID=6; " & "update SuperAdminSettingsArea set Value=@CR where ID=4; " & "update SuperAdminSettings set Name=@Name, Value=@URL where ID=1 and AreaID=4 "
Reference link: Executing multiple SQL statements as one against SQL Server
hope it helps./.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, December 17, 2013 3:14 AM -
User1977787504 posted
Dim sbquery As New StringBuilder
If chkPFCI.Checked And chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData Delete from FinancePeriod; " ElseIf chkPFCI.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinancePeriod; " ElseIf chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData; " End If
If chkCR.Checked Then If txtReportName.Text.Count > 255 Then htData.Add("ReportName", txtReportName.Text.Substring(0, 254)) Else htData.Add("ReportName", txtReportName.Text) End If If txtURL.Text.Count > 255 Then htData.Add("ReportURL", txtURL.Text.Substring(0, 254)) Else htData.Add("ReportURL", txtURL.Text) End If sbquery.Append("update SuperAdminSettingsArea set Value=@GP where ID=1 " & "update SuperAdminSettingsArea set Value=@VRL where ID=2 " & "update SuperAdminSettingsArea set Value=@IC where ID=3 " & "update SuperAdminSettingsArea set Value=@RS where ID=5 " & "update SuperAdminSettingsArea set Value=@PVD where ID=6 " & "update SuperAdminSettingsArea set Value=@CR where ID=4 " & "update SuperAdminSettings set Name=@Name, Value=@URL where ID=1 and AreaID=4 ") cmd.CommandText = sbquery.ToString cmd.Parameters.AddWithValue("@GP", htData("GroupPermissions")) cmd.Parameters.AddWithValue("@VRL", htData("ViewRequestLicenses")) cmd.Parameters.AddWithValue("@IC", htData("InsightsCategories")) cmd.Parameters.AddWithValue("@RS", htData("ReportSettings")) cmd.Parameters.AddWithValue("@CR", htData("CustomReportsLink")) cmd.Parameters.AddWithValue("@Name", htData("ReportName")) cmd.Parameters.AddWithValue("@URL", htData("ReportURL")) cmd.Parameters.AddWithValue("@PVD", htData("PurgeDocumentVersionsLink")) Else sbquery.Append("update SuperAdminSettingsArea set Value=@GP where ID=1 " & "update SuperAdminSettingsArea set Value=@VRL where ID=2 " & "update SuperAdminSettingsArea set Value=@IC where ID=3 " & "update SuperAdminSettingsArea set Value=@RS where ID=5 " & "update SuperAdminSettingsArea set Value=@PVD where ID=6 " & "update SuperAdminSettingsArea set Value=@CR where ID=4 ") cmd.CommandText = sbquery.ToString cmd.Parameters.AddWithValue("@GP", htData("GroupPermissions")) cmd.Parameters.AddWithValue("@VRL", htData("ViewRequestLicenses")) cmd.Parameters.AddWithValue("@IC", htData("InsightsCategories")) cmd.Parameters.AddWithValue("@RS", htData("ReportSettings")) cmd.Parameters.AddWithValue("@CR", htData("CustomReportsLink")) cmd.Parameters.AddWithValue("@PVD", htData("PurgeDocumentVersionsLink")) End If Try SqlHelperInsight.ExecuteCommandNonQuery(cmd)
i did it with string builder without semicolon, because i am using sql 2008, which can work without semicolon.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, December 17, 2013 5:50 AM
All replies
-
User-484054684 posted
If you would like to execute multiple update statements at a time, better to go with stored procedure with transaction commit and rollback.
Friday, December 13, 2013 9:32 AM -
User-1509636757 posted
I agree with siva. You should create stored procedure and execute all update statement. Check out the code sample. I just assume the parameter types to varchar which you can change on your requirement:
CREATE PROC usp_Update_SuperAdminSettingsArea @GP VARCHAR(50), @VRL VARCHAR(50), @IC VARCHAR(50), @RS VARCHAR(50), @CR VARCHAR(50), @Name VARCHAR(50), @URL VARCHAR(50), @PVD VARCHAR(50), @chkPFCI BIT, @chkPFD BIT AS BEGIN IF @chkPFCI = 1 AND @chkPFD = 1 BEGIN Delete from FinanceData Delete from FinancePeriod END Else If chkPFCI = '1' Delete from FinancePeriod Else IF chkPFD = '1' Delete from FinanceData update SuperAdminSettingsArea set Value=@GP where ID=1 update SuperAdminSettingsArea set Value=@VRL where ID=2 update SuperAdminSettingsArea set Value=@IC where ID=3 update SuperAdminSettingsArea set Value=@RS where ID=5 update SuperAdminSettingsArea set Value=@PVD where ID=6 update SuperAdminSettingsArea set Value=@CR where ID=4 update SuperAdminSettings set Name=@Name, Value=@URL where ID=1 and AreaID=4 END
and pass the parameters:
cmd.CommandText = "usp_Update_SuperAdminSettingsArea" cmd.Parameters.AddWithValue("@GP", htData("GroupPermissions")) cmd.Parameters.AddWithValue("@VRL", htData("ViewRequestLicenses")) cmd.Parameters.AddWithValue("@IC", htData("InsightsCategories")) cmd.Parameters.AddWithValue("@RS", htData("ReportSettings")) cmd.Parameters.AddWithValue("@CR", htData("CustomReportsLink")) cmd.Parameters.AddWithValue("@Name", htData("ReportName")) cmd.Parameters.AddWithValue("@URL", htData("ReportURL")) cmd.Parameters.AddWithValue("@PVD", htData("PurgeDocumentVersionsLink")) cmd.Parameters.AddWithValue("@chkPFCI", chkPFCI.Checked) cmd.Parameters.AddWithValue("@chkPFD", chkPFD.Checked)
hope it helps./.
Friday, December 13, 2013 10:11 AM -
User1977787504 posted
BY string builder ?
Monday, December 16, 2013 10:03 PM -
User-1509636757 posted
BY string builder ?If you go by using stored procedure, StringBuilder is not required because by using StringBuilder you were creating the CommandText to execute it in database, But instead of that in stored procedure you will just pass the parameters in SqlCommand and the name of the stored procedure.
hope it helps./.
Monday, December 16, 2013 10:16 PM -
User1977787504 posted
I want to use commandtext, yeah i know that was recommended to use SP ,but here we need to use command text with sql query,
Tuesday, December 17, 2013 2:20 AM -
User-1016547394 posted
I want to use commandtext, yeah i know that was recommended to use SP ,but here we need to use command text with sql query,
Maybe you can save your SQL and SqlParameters into Dictionary(Of String, Of SqlParameter()) and then use For Each to loop each of them and dynamically add possibly. However I strongly recommand you doing that by using SP.
Tuesday, December 17, 2013 2:31 AM -
User-1509636757 posted
I want to use commandtext, yeah i know that was recommended to use SP ,but here we need to use command text with sql query,Try adding semicolon after every statement:
If chkPFCI.Checked And chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData Delete from FinancePeriod; " ElseIf chkPFCI.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinancePeriod; " ElseIf chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData; " End If cmd.CommandText = cmd.CommandText & "update SuperAdminSettingsArea set Value=@GP where ID=1; " & "update SuperAdminSettingsArea set Value=@VRL where ID=2; " & "update SuperAdminSettingsArea set Value=@IC where ID=3; " & "update SuperAdminSettingsArea set Value=@RS where ID=5; " & "update SuperAdminSettingsArea set Value=@PVD where ID=6; " & "update SuperAdminSettingsArea set Value=@CR where ID=4; " & "update SuperAdminSettings set Name=@Name, Value=@URL where ID=1 and AreaID=4 "
Reference link: Executing multiple SQL statements as one against SQL Server
hope it helps./.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, December 17, 2013 3:14 AM -
User1977787504 posted
Dim sbquery As New StringBuilder
If chkPFCI.Checked And chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData Delete from FinancePeriod; " ElseIf chkPFCI.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinancePeriod; " ElseIf chkPFD.Checked Then cmd.CommandText = cmd.CommandText & "Delete from FinanceData; " End If
If chkCR.Checked Then If txtReportName.Text.Count > 255 Then htData.Add("ReportName", txtReportName.Text.Substring(0, 254)) Else htData.Add("ReportName", txtReportName.Text) End If If txtURL.Text.Count > 255 Then htData.Add("ReportURL", txtURL.Text.Substring(0, 254)) Else htData.Add("ReportURL", txtURL.Text) End If sbquery.Append("update SuperAdminSettingsArea set Value=@GP where ID=1 " & "update SuperAdminSettingsArea set Value=@VRL where ID=2 " & "update SuperAdminSettingsArea set Value=@IC where ID=3 " & "update SuperAdminSettingsArea set Value=@RS where ID=5 " & "update SuperAdminSettingsArea set Value=@PVD where ID=6 " & "update SuperAdminSettingsArea set Value=@CR where ID=4 " & "update SuperAdminSettings set Name=@Name, Value=@URL where ID=1 and AreaID=4 ") cmd.CommandText = sbquery.ToString cmd.Parameters.AddWithValue("@GP", htData("GroupPermissions")) cmd.Parameters.AddWithValue("@VRL", htData("ViewRequestLicenses")) cmd.Parameters.AddWithValue("@IC", htData("InsightsCategories")) cmd.Parameters.AddWithValue("@RS", htData("ReportSettings")) cmd.Parameters.AddWithValue("@CR", htData("CustomReportsLink")) cmd.Parameters.AddWithValue("@Name", htData("ReportName")) cmd.Parameters.AddWithValue("@URL", htData("ReportURL")) cmd.Parameters.AddWithValue("@PVD", htData("PurgeDocumentVersionsLink")) Else sbquery.Append("update SuperAdminSettingsArea set Value=@GP where ID=1 " & "update SuperAdminSettingsArea set Value=@VRL where ID=2 " & "update SuperAdminSettingsArea set Value=@IC where ID=3 " & "update SuperAdminSettingsArea set Value=@RS where ID=5 " & "update SuperAdminSettingsArea set Value=@PVD where ID=6 " & "update SuperAdminSettingsArea set Value=@CR where ID=4 ") cmd.CommandText = sbquery.ToString cmd.Parameters.AddWithValue("@GP", htData("GroupPermissions")) cmd.Parameters.AddWithValue("@VRL", htData("ViewRequestLicenses")) cmd.Parameters.AddWithValue("@IC", htData("InsightsCategories")) cmd.Parameters.AddWithValue("@RS", htData("ReportSettings")) cmd.Parameters.AddWithValue("@CR", htData("CustomReportsLink")) cmd.Parameters.AddWithValue("@PVD", htData("PurgeDocumentVersionsLink")) End If Try SqlHelperInsight.ExecuteCommandNonQuery(cmd)
i did it with string builder without semicolon, because i am using sql 2008, which can work without semicolon.
- Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
Tuesday, December 17, 2013 5:50 AM