Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

How do you get a guid back from command.ExecuteScalar and then use it for next proc?

Posted on 2003-03-23
14
Medium Priority
?
797 Views
Last Modified: 2008-02-01
I have a SqlCommand object that executes a stored procedure to create a record and return the guid of the newly created record. I need that new guid for executing the next proc.

I am trying to get command.ExecuteScalar to work, but no matter what I do--and I've tried a million different things-- I get some kind of casting error.  

What do I need to do to cast this object so that I can pass this return value to my next proc?  I assuming that I need to cast it as a guid, since that's what the proc will be expecting.  

Here's an example of code that's not working:
> String strNewID= objSubmitForm.ExecuteScalar().ToString();

Thanks.

Leprechaun
0
Comment
Question by:Leprechaun
  • 7
  • 2
  • 2
  • +2
14 Comments
 
LVL 4

Assisted Solution

by:Nebulus_
Nebulus_ earned 600 total points
ID: 8193596
I run your statement:

String strNewID= objSubmitForm.ExecuteScalar().ToString();

to a table of my database, and works fine.
I think that the problem is with the stored proc.
If you send me the stored proc maybe I can found the problem.
0
 
LVL 23

Assisted Solution

by:naveenkohli
naveenkohli earned 600 total points
ID: 8194385
Try getting the returned value in a Guid object first. And then use ToString with appropriate formatting paramater to pass the vale to next proc.

Guid retGuid = new (objSubmitForm.ExecuteScalar().ToString());

string forNextProc = retGuid.ToString("B"); // Check doc for what formatting paramater to use.
0
 
LVL 14

Expert Comment

by:AvonWyss
ID: 8195061
I think what naveenkohli meant was:
Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString));
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 23

Expert Comment

by:naveenkohli
ID: 8195151
Thanks Avon for correcting :-)
0
 

Author Comment

by:Leprechaun
ID: 8196316
Hi people

Thanks for the help.

I tried using:
> Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString));
> String forNextProc = retGuid.ToString("D");
but I'm still getting an "Invalid cast from System.String to System.Guid" error.

Below is the code.  

I've tested the proc in Query Analyser.  It returns a single guid.

Any ideas what's wrong?

Thanks.


-----------------------------------------------
      // OPEN DB
      String strConnection = ConfigurationSettings.AppSettings["ING"];
      SqlConnection myConnection = new SqlConnection(strConnection);
          myConnection.Open();

      // OPEN COMMAND FOR ADDING NEW RECORD TO DB
      SqlCommand objSubmitForm = new SqlCommand("PUT_ING_REGISTRATION", myConnection);
      objSubmitForm.CommandType = CommandType.StoredProcedure;
      
      SqlParameter paramFN = new SqlParameter("@fn", SqlDbType.VarChar, 100);
      paramFN.Value = strFN;
      objSubmitForm.Parameters.Add(paramFN);

      SqlParameter paramLN = new SqlParameter("@ln", SqlDbType.VarChar, 100);
      paramLN.Value = strLN;
      objSubmitForm.Parameters.Add(paramLN);

      SqlParameter paramGender = new SqlParameter("@gender", SqlDbType.VarChar, 6);
      paramGender.Value = strGender;
      objSubmitForm.Parameters.Add(paramGender);

      SqlParameter paramMarStatus = new SqlParameter("@marital_status", SqlDbType.UniqueIdentifier);
      paramMarStatus.Value = strMaritalStatus;
      objSubmitForm.Parameters.Add(paramMarStatus);

      SqlParameter paramNumDepends = new SqlParameter("@num_independents", SqlDbType.Int);
      paramNumDepends.Value = strNumDependents;
      objSubmitForm.Parameters.Add(paramNumDepends);

      SqlParameter paramYOB = new SqlParameter("@yob", SqlDbType.Int);
      paramYOB.Value = strYOB;
      objSubmitForm.Parameters.Add(paramYOB);

      SqlParameter paramIsLocal = new SqlParameter("@is_local_flag", SqlDbType.VarChar, 100);
      paramIsLocal.Value = strLocalFlag;
      objSubmitForm.Parameters.Add(paramIsLocal);

      SqlParameter paramOtherCit = new SqlParameter("@other_citizenship", SqlDbType.UniqueIdentifier);
      paramOtherCit.Value = strOtherCitizenship;
      objSubmitForm.Parameters.Add(paramOtherCit);

      SqlParameter paramYearLeft = new SqlParameter("@year_left, SqlDbType.Int);
      paramYearLeft.Value = strWhenLeft;
      objSubmitForm.Parameters.Add(paramYearLeft);

      SqlParameter paramYearWorked = new SqlParameter("@year_last_worked", SqlDbType.Int);
      paramYearWorked.Value = strWhenWorked;
      objSubmitForm.Parameters.Add(paramYearWorked);

      SqlParameter paramCityBornId = new SqlParameter("@city_born_id", SqlDbType.UniqueIdentifier, 100);
      paramCityBornId.Value = strWhichCityId;
      objSubmitForm.Parameters.Add(paramCityBornId);

      SqlParameter paramCityBornName = new SqlParameter("@city_born_name", SqlDbType.VarChar, 100);
      paramCityBornName.Value = strWhichLocalCityText;
      objSubmitForm.Parameters.Add(paramCityBornName);

      SqlParameter paramAddrLine1 = new SqlParameter("@addr_line_1", SqlDbType.VarChar, 50);
      paramAddrLine1.Value = strAddrLine1;
      objSubmitForm.Parameters.Add(paramAddrLine1);
      
      
      SqlParameter paramAddrLine2 = new SqlParameter("@addr_line_2", SqlDbType.VarChar, 50);
      paramAddrLine2.Value = strAddrLine2;
      objSubmitForm.Parameters.Add(paramAddrLine2);

      SqlParameter paramAddrLine3 = new SqlParameter("@addr_line_3", SqlDbType.VarChar, 50);
      paramAddrLine3.Value = strAddrLine3;
      objSubmitForm.Parameters.Add(paramAddrLine3);

      SqlParameter paramAddrCity = new SqlParameter("@addr_city", SqlDbType.VarChar, 100);
      paramAddrCity.Value = strAddrCity;
      objSubmitForm.Parameters.Add(paramAddrCity);

      SqlParameter paramAddrStateId = new SqlParameter("@addr_state_id", SqlDbType.UniqueIdentifier);
      paramAddrStateId.Value = strAddrStateId;
      objSubmitForm.Parameters.Add(paramAddrStateId);

      SqlParameter paramAddrCountryId = new SqlParameter("@addr_country_id", SqlDbType.UniqueIdentifier);
      paramAddrCountryId.Value = strAddrCountryId;
      objSubmitForm.Parameters.Add(paramAddrCountryId);

      SqlParameter paramPN = new SqlParameter("@pn", SqlDbType.VarChar, 30);
      paramPN.Value = strPN;
      objSubmitForm.Parameters.Add(paramPN);

      SqlParameter paramFaxNum = new SqlParameter("@fax_num", SqlDbType.VarChar, 30);
      paramFaxNum.Value = strFaxNum;
      objSubmitForm.Parameters.Add(paramFaxNum);

      SqlParameter paramEmail = new SqlParameter("@email", SqlDbType.VarChar, 100);
      paramEmail.Value = strEmail;
      objSubmitForm.Parameters.Add(paramEmail);

      SqlParameter paramHighEdThere = new SqlParameter("@highest_ed_there_id", SqlDbType.UniqueIdentifier);
      paramHighEdThere.Value = strHighestEdThereId;
      objSubmitForm.Parameters.Add(paramHighEdThere);

      SqlParameter paramGradYearThere = new SqlParameter("@grad_year_there", SqlDbType.Int);
      paramGradYearThere.Value = strYearOfGradThere;
      objSubmitForm.Parameters.Add(paramGradYearThere);

      SqlParameter paramEdInstitThere = new SqlParameter("@educ_institution_there", SqlDbType.VarChar, 100);
      paramEdInstitThere.Value = strEducInstitThere;
      objSubmitForm.Parameters.Add(paramEdInstitThere);

      SqlParameter paramEdSubjThere = new SqlParameter("@educ_subject_there_id", SqlDbType.UniqueIdentifier);
      paramEdSubjThere.Value = strDegreeSubjThereId;
      objSubmitForm.Parameters.Add(paramEdSubjThere);

      SqlParameter paramHighEdHere = new SqlParameter("@highest_ed_here_id", SqlDbType.UniqueIdentifier);
      paramHighEdHere.Value = strHighestEdHereId;
      objSubmitForm.Parameters.Add(paramHighEdHere);

      SqlParameter paramGradYearHere = new SqlParameter("@grad_year_here", SqlDbType.Int);
      paramGradYearHere.Value = strYearOfGradHere;
      objSubmitForm.Parameters.Add(paramGradYearHere);

      SqlParameter paramEdInstitHere = new SqlParameter("@educ_institution_here", SqlDbType.VarChar, 100);
      paramEdInstitHere.Value = strEducInstitHere;
      objSubmitForm.Parameters.Add(paramEdInstitHere);

      SqlParameter paramEdSubjHere = new SqlParameter("@educ_subject_here_id", SqlDbType.UniqueIdentifier);
      paramEdSubjHere.Value = strDegreeSubjHereId;
      objSubmitForm.Parameters.Add(paramEdSubjHere);

      SqlParameter paramCommentsEduc = new SqlParameter("@comments_education", SqlDbType.VarChar, 500);
      paramCommentsEduc.Value = strCommentsEduc;
      objSubmitForm.Parameters.Add(paramCommentsEduc);

      SqlParameter paramIndustryId = new SqlParameter("@industry_id", SqlDbType.UniqueIdentifier);
      paramIndustryId.Value = strProfessionId;
      objSubmitForm.Parameters.Add(paramIndustryId);

      SqlParameter paramProfTitle = new SqlParameter("@professional_title", SqlDbType.VarChar, 50);
      paramProfTitle.Value = strProfessionTitle;
      objSubmitForm.Parameters.Add(paramProfTitle);

      SqlParameter paramYearsInProf = new SqlParameter("@years_in_profession", SqlDbType.Int);
      paramYearsInProf.Value = strNumYearsInProfession;
      objSubmitForm.Parameters.Add(paramYearsInProf);

      SqlParameter paramCommentsProf = new SqlParameter("@comments_profession", SqlDbType.VarChar, 500);
      paramCommentsProf.Value = strCommentsProfession;
      objSubmitForm.Parameters.Add(paramCommentsProf);
      
      SqlParameter paramSpeakPrimaryLang = new SqlParameter("@speak_primary_lang_id", SqlDbType.UniqueIdentifier);
      paramSpeakPrimaryLang.Value = strHowWellSpeakPrimaryLangId;
      objSubmitForm.Parameters.Add(paramSpeakPrimaryLang);
      
      SqlParameter paramReadPrimaryLang = new SqlParameter("@read_primary_lang_id", SqlDbType.UniqueIdentifier);
      paramReadPrimaryLang.Value = strHowWellReadPrimaryLangId;
      objSubmitForm.Parameters.Add(paramReadPrimaryLang);
      
      SqlParameter paramWritePrimaryLang = new SqlParameter("@write_primary_langi_d", SqlDbType.UniqueIdentifier);
      paramWritePrimaryLang.Value = strHowWellWritePrimaryLangId;
      objSubmitForm.Parameters.Add(paramWritePrimaryLang);      

      Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString());
      lblDebug.Text = yourGuid.ToString("D");
      
      //* pass yourGuid to 2nd proc
0
 

Author Comment

by:Leprechaun
ID: 8196325
Hi people

Thanks for the help.

I tried using:
> Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString));
> String forNextProc = retGuid.ToString("D");
but I'm still getting an "Invalid cast from System.String to System.Guid" error.

Below is the code.  

I've tested the proc in Query Analyser.  It returns a single guid.

Any ideas what's wrong?

Thanks.


-----------------------------------------------
      // OPEN DB
      String strConnection = ConfigurationSettings.AppSettings["ING"];
      SqlConnection myConnection = new SqlConnection(strConnection);
          myConnection.Open();

      // OPEN COMMAND FOR ADDING NEW RECORD TO DB
      SqlCommand objSubmitForm = new SqlCommand("PUT_ING_REGISTRATION", myConnection);
      objSubmitForm.CommandType = CommandType.StoredProcedure;
      
      SqlParameter paramFN = new SqlParameter("@fn", SqlDbType.VarChar, 100);
      paramFN.Value = strFN;
      objSubmitForm.Parameters.Add(paramFN);

      SqlParameter paramLN = new SqlParameter("@ln", SqlDbType.VarChar, 100);
      paramLN.Value = strLN;
      objSubmitForm.Parameters.Add(paramLN);

      SqlParameter paramGender = new SqlParameter("@gender", SqlDbType.VarChar, 6);
      paramGender.Value = strGender;
      objSubmitForm.Parameters.Add(paramGender);

      SqlParameter paramMarStatus = new SqlParameter("@marital_status", SqlDbType.UniqueIdentifier);
      paramMarStatus.Value = strMaritalStatus;
      objSubmitForm.Parameters.Add(paramMarStatus);

      SqlParameter paramNumDepends = new SqlParameter("@num_independents", SqlDbType.Int);
      paramNumDepends.Value = strNumDependents;
      objSubmitForm.Parameters.Add(paramNumDepends);

      SqlParameter paramYOB = new SqlParameter("@yob", SqlDbType.Int);
      paramYOB.Value = strYOB;
      objSubmitForm.Parameters.Add(paramYOB);

      SqlParameter paramIsLocal = new SqlParameter("@is_local_flag", SqlDbType.VarChar, 100);
      paramIsLocal.Value = strLocalFlag;
      objSubmitForm.Parameters.Add(paramIsLocal);

      SqlParameter paramOtherCit = new SqlParameter("@other_citizenship", SqlDbType.UniqueIdentifier);
      paramOtherCit.Value = strOtherCitizenship;
      objSubmitForm.Parameters.Add(paramOtherCit);

      SqlParameter paramYearLeft = new SqlParameter("@year_left, SqlDbType.Int);
      paramYearLeft.Value = strWhenLeft;
      objSubmitForm.Parameters.Add(paramYearLeft);

      SqlParameter paramYearWorked = new SqlParameter("@year_last_worked", SqlDbType.Int);
      paramYearWorked.Value = strWhenWorked;
      objSubmitForm.Parameters.Add(paramYearWorked);

      SqlParameter paramCityBornId = new SqlParameter("@city_born_id", SqlDbType.UniqueIdentifier, 100);
      paramCityBornId.Value = strWhichCityId;
      objSubmitForm.Parameters.Add(paramCityBornId);

      SqlParameter paramCityBornName = new SqlParameter("@city_born_name", SqlDbType.VarChar, 100);
      paramCityBornName.Value = strWhichLocalCityText;
      objSubmitForm.Parameters.Add(paramCityBornName);

      SqlParameter paramAddrLine1 = new SqlParameter("@addr_line_1", SqlDbType.VarChar, 50);
      paramAddrLine1.Value = strAddrLine1;
      objSubmitForm.Parameters.Add(paramAddrLine1);
      
      
      SqlParameter paramAddrLine2 = new SqlParameter("@addr_line_2", SqlDbType.VarChar, 50);
      paramAddrLine2.Value = strAddrLine2;
      objSubmitForm.Parameters.Add(paramAddrLine2);

      SqlParameter paramAddrLine3 = new SqlParameter("@addr_line_3", SqlDbType.VarChar, 50);
      paramAddrLine3.Value = strAddrLine3;
      objSubmitForm.Parameters.Add(paramAddrLine3);

      SqlParameter paramAddrCity = new SqlParameter("@addr_city", SqlDbType.VarChar, 100);
      paramAddrCity.Value = strAddrCity;
      objSubmitForm.Parameters.Add(paramAddrCity);

      SqlParameter paramAddrStateId = new SqlParameter("@addr_state_id", SqlDbType.UniqueIdentifier);
      paramAddrStateId.Value = strAddrStateId;
      objSubmitForm.Parameters.Add(paramAddrStateId);

      SqlParameter paramAddrCountryId = new SqlParameter("@addr_country_id", SqlDbType.UniqueIdentifier);
      paramAddrCountryId.Value = strAddrCountryId;
      objSubmitForm.Parameters.Add(paramAddrCountryId);

      SqlParameter paramPN = new SqlParameter("@pn", SqlDbType.VarChar, 30);
      paramPN.Value = strPN;
      objSubmitForm.Parameters.Add(paramPN);

      SqlParameter paramFaxNum = new SqlParameter("@fax_num", SqlDbType.VarChar, 30);
      paramFaxNum.Value = strFaxNum;
      objSubmitForm.Parameters.Add(paramFaxNum);

      SqlParameter paramEmail = new SqlParameter("@email", SqlDbType.VarChar, 100);
      paramEmail.Value = strEmail;
      objSubmitForm.Parameters.Add(paramEmail);

      SqlParameter paramHighEdThere = new SqlParameter("@highest_ed_there_id", SqlDbType.UniqueIdentifier);
      paramHighEdThere.Value = strHighestEdThereId;
      objSubmitForm.Parameters.Add(paramHighEdThere);

      SqlParameter paramGradYearThere = new SqlParameter("@grad_year_there", SqlDbType.Int);
      paramGradYearThere.Value = strYearOfGradThere;
      objSubmitForm.Parameters.Add(paramGradYearThere);

      SqlParameter paramEdInstitThere = new SqlParameter("@educ_institution_there", SqlDbType.VarChar, 100);
      paramEdInstitThere.Value = strEducInstitThere;
      objSubmitForm.Parameters.Add(paramEdInstitThere);

      SqlParameter paramEdSubjThere = new SqlParameter("@educ_subject_there_id", SqlDbType.UniqueIdentifier);
      paramEdSubjThere.Value = strDegreeSubjThereId;
      objSubmitForm.Parameters.Add(paramEdSubjThere);

      SqlParameter paramHighEdHere = new SqlParameter("@highest_ed_here_id", SqlDbType.UniqueIdentifier);
      paramHighEdHere.Value = strHighestEdHereId;
      objSubmitForm.Parameters.Add(paramHighEdHere);

      SqlParameter paramGradYearHere = new SqlParameter("@grad_year_here", SqlDbType.Int);
      paramGradYearHere.Value = strYearOfGradHere;
      objSubmitForm.Parameters.Add(paramGradYearHere);

      SqlParameter paramEdInstitHere = new SqlParameter("@educ_institution_here", SqlDbType.VarChar, 100);
      paramEdInstitHere.Value = strEducInstitHere;
      objSubmitForm.Parameters.Add(paramEdInstitHere);

      SqlParameter paramEdSubjHere = new SqlParameter("@educ_subject_here_id", SqlDbType.UniqueIdentifier);
      paramEdSubjHere.Value = strDegreeSubjHereId;
      objSubmitForm.Parameters.Add(paramEdSubjHere);

      SqlParameter paramCommentsEduc = new SqlParameter("@comments_education", SqlDbType.VarChar, 500);
      paramCommentsEduc.Value = strCommentsEduc;
      objSubmitForm.Parameters.Add(paramCommentsEduc);

      SqlParameter paramIndustryId = new SqlParameter("@industry_id", SqlDbType.UniqueIdentifier);
      paramIndustryId.Value = strProfessionId;
      objSubmitForm.Parameters.Add(paramIndustryId);

      SqlParameter paramProfTitle = new SqlParameter("@professional_title", SqlDbType.VarChar, 50);
      paramProfTitle.Value = strProfessionTitle;
      objSubmitForm.Parameters.Add(paramProfTitle);

      SqlParameter paramYearsInProf = new SqlParameter("@years_in_profession", SqlDbType.Int);
      paramYearsInProf.Value = strNumYearsInProfession;
      objSubmitForm.Parameters.Add(paramYearsInProf);

      SqlParameter paramCommentsProf = new SqlParameter("@comments_profession", SqlDbType.VarChar, 500);
      paramCommentsProf.Value = strCommentsProfession;
      objSubmitForm.Parameters.Add(paramCommentsProf);
      
      SqlParameter paramSpeakPrimaryLang = new SqlParameter("@speak_primary_lang_id", SqlDbType.UniqueIdentifier);
      paramSpeakPrimaryLang.Value = strHowWellSpeakPrimaryLangId;
      objSubmitForm.Parameters.Add(paramSpeakPrimaryLang);
      
      SqlParameter paramReadPrimaryLang = new SqlParameter("@read_primary_lang_id", SqlDbType.UniqueIdentifier);
      paramReadPrimaryLang.Value = strHowWellReadPrimaryLangId;
      objSubmitForm.Parameters.Add(paramReadPrimaryLang);
      
      SqlParameter paramWritePrimaryLang = new SqlParameter("@write_primary_langi_d", SqlDbType.UniqueIdentifier);
      paramWritePrimaryLang.Value = strHowWellWritePrimaryLangId;
      objSubmitForm.Parameters.Add(paramWritePrimaryLang);      

      Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString());
      lblDebug.Text = yourGuid.ToString("D");
      
      //* pass yourGuid to 2nd proc
0
 
LVL 14

Expert Comment

by:AvonWyss
ID: 8196360
On what line/statement exactly does the error pop up?
0
 

Author Comment

by:Leprechaun
ID: 8196451
Oops.  Sorry about the long message (and the duplicate). Should've shortened it.

Thanks.

Leprechaun
0
 

Author Comment

by:Leprechaun
ID: 8196507
Sorry about all that code, Avon.

The error was for:
>      Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString());

Thanks.

0
 

Author Comment

by:Leprechaun
ID: 8196525
Sorry about all that code, Avon.

The error was for:
>      Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString());

Thanks.

0
 

Expert Comment

by:lowmaka
ID: 8212796
Which one is the OUTPUT parameter? What is the SQL data type you've defined for the OUTPUT parameter?

0
 

Author Comment

by:Leprechaun
ID: 8215160
Hi Iowmaka,

At the moment, an output parameter isn't defined, though the proc returns one.  The proc inserts form selections into a new row of the table and then selects the new id.

I didn't think a return parameter was required because the following code had worked without one:
> SqlCommand objCommand = new SqlCommand("select TBL_TEST_PK from TBL_TEST where NAME = 'teststring'", myConnection);
> Guid guidReturned = (Guid) objCommand.ExecuteScalar();
>lblDebug.Text = "<h1>Name is " + guidReturned.ToString() + ".</h1>";

Is it a different story when a parameterized proc is involved?  Do you have to have an output parameter?

Thanks.


Leprechaun
0
 

Accepted Solution

by:
lowmaka earned 800 total points
ID: 8219413
You're right. OUTPUT parameter is not nessary. Since the result from ExecuteScalar() should be a "single value" and I was not sure what your "selet" statement looks like, I assumed you might be using OUTPUT parameter. Sorry to mislead you. Show us your select statement if you can.

Now, if the objSubmitForm.ExecuteScalar() returned Guid as you see in the Query Analyzer, is there a reason why you  convert it to a string, call Guid constructor to cast it back?

>Guid yourGuid=new Guid(objSubmitForm.ExecuteScalar().ToString());

You probalby already tried this, haven't you:

Guid yourGuid =(Guid)objSubmitForm.ExecuteScalar();


0
 

Author Comment

by:Leprechaun
ID: 10895783
Sorry for taking so long!  Will be more careful in the future.  

I ended up solving this problem, but don't remember now exactly how I did it now.  Sorry.  

Thanks a lot, folks.  

Leprechaun
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
Kernel Data Recovery is a renowned Data Recovery solution provider which offers wide range of softwares for both enterprise and home users with its cost-effective solutions. Let's have a quick overview of the journey and data recovery tools range he…
Suggested Courses
Course of the Month11 days, 18 hours left to enroll

564 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question