JaspalSingh03 Ответов: 2

Извлеките процедуру хранилища с подробными сведениями, запустив решение в интерфейсе


я хочу получить процедуру хранения с подробностями (например, использование процессора, время и т. д.) Из внешнего интерфейса.

например, если у меня было решение abc, работающее во фронт-энде, и я запускал страницу входа в систему спереди, то я хочу знать, какая процедура хранения выполняется в Бек-энде .

Имея любое решение .

Что я уже пробовал:

string Connstring = "Data Source=" + txtservername.Text + "; Initial Catalog=" + txtLDatabase.Text + "; Persist Security Info=true; User ID=" + txtLUName.Text + "; Password=" + txtLPassword.Text + ";Connect Timeout=0";
            //"Data Source=" + txtservername.Text + "; Initial Catalog=" + txtLDatabase.Text + "; Persist Security Info=true; User ID=" + txtLUName.Text + "; Password=" + txtLPassword.Text + ";Connect Timeout=0";
            SqlConnection cn = new SqlConnection(Connstring);
            try
            {
                cn.Open();
                SqlCommand cmd = new SqlCommand("SELECT * FROM sys.Databases WHERE state = 0", cn);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                cmd.CommandTimeout = 0;
                adp.Fill(ds);
                cmd.Dispose();
                cmd = new SqlCommand("SELECT * FROM  master..sysprocesses WHERE spid > 50", cn);
                DataSet ds1 = new DataSet();
                SqlDataAdapter adp1 = new SqlDataAdapter(cmd);
                adp1.Fill(ds1);
                string str = cmd.ExecuteScalar().ToString();
                if (ds.Tables[0].Rows.Count != 0)
                {
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        ddlPublisherServer.Items.Add(ds.Tables[0].Rows[i][0]);

                    //dataGridView1.DataSource = ds.Tables[0];
                    dataGridView1.DataSource = ds.Tables[0];                 
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Invalid User Name or Password" + ex.Message);
            }

2 Ответов

Рейтинг:
4

Er Parul

Привет,

Не могли бы вы более подробно рассказать о своем вопросе на точном примере ?

вы пытаетесь подключить sql sever из данного пользовательского интерфейса. Вы пытаетесь узнать, какая именно процедура хранения выполняется при подключении SQL server ?


JaspalSingh03

на самом деле я хочу сохранить текущую выполняемую хранимую процедуру в базе данных.

предположим., мы запускаем любой динамический проект и вставляем любую главную страницу города или штата,
в таком случае процедура хранения в фоновом режиме вызовет i. e insertcity или что-то еще.
и какой бы процесс ни выполнялся на лицевой стороне, вся процедура будет автоматически обновляться в базе данных.

Я хочу показать на передней стороне и хочу сохранить в базе данных.

Надеюсь, вы поймете мой вопрос.

Er Parul

Привет,

Вы имеете в виду отслеживать активность

Вам нужно отслеживать в отдельной таблице вызов "ActivityLog", в которой вам нужно добавить информацию о каждом действии(например, вставить город, сохранить имя процедуры, время доступа,доступ кем), которое вы выполнили.

Если вы хотите сохранить данные с помощью процедуры хранения, то автоматического вызова не будет. Вы должны создать процедуру хранения, а затем вызвать эту хранимую процедуру в c#. Командный тип.StoreProcedure.


Надеюсь, вы получили от этого решение.

JaspalSingh03

кое-как я почерпнул эту идею из вашего предложения.
Но как получить именно имя хранимой процедуры, когда мы запускаем формы переднего плана решения?
(например, я запускаю форму citymaster с переднего конца, и журнал определит, какой запрос был выполнен .)

Er Parul

Привет,

Если вы получите правильное решение или даже подсказку от данного решения, то, пожалуйста, не давайте оценку вниз, как одна звезда, как ее точка профиля уменьшения, которая дала решение вопроса.

Er Parul

Привет,

Его логично всякий раз когда вы выполняете вставку или обновление вашего citymaster в то время вы должны создать журнал для этого действия будь то его вставка или обновление или удаление его obivious что вы можете легко получить имя storeprocedure :)

пример. Здесь я использую саму storeprocedure, но вы можете сделать то же самое и на стороне c#

Создать STOREProcedure INSERTCITY
(
@CiTYNAME VARCHAR (50)
)
НАЧАТЬ

ВСТАВИТЬ В ЗНАЧЕНИЯ ГОРОДА (........)

// Лог активности
Вставить в ActivityLOG значения (.........)

КОНЕЦ





JaspalSingh03

доброе утро,
Привет,
Я уже сделал так, как вы мне предлагаете, но для этого я должен вставить запрос INSERT в каждую хранимую процедуру, и я пытаюсь получить всю хранимую процедуру со стороны базы данных(beckend side).

Например, у меня есть несколько систем в локальной сети, которые получают доступ к каждой другой базе данных для своей работы, и теперь я создаю настольный проект в vb.net C#, только для того ,чтобы узнать, какое имя сервера, имя пользователя, пароль и база данных и все другие связанные хранимые процедуры используются.
Кто так когда-либо работал над FRONT END решением и какие когда-либо формы все работают , я получаю только выборку данных со стороны beckend в моем настольном решении..

я надеюсь, что вы получите реальное представление о том, что я хочу сказать.
Спасибо

JaspalSingh03

Привет,
Могу ли я иметь запрос в sql, то, какая хранимая процедура или запрос занимает максимальное время выполнения .

Спасибо

Рейтинг:
0

Er Parul

Привет,

Вы имеете в виду отслеживать активность

Вам нужно отслеживать в отдельной таблице вызов "ActivityLog", в которой вам нужно добавить информацию о каждом действии(например, вставить город, сохранить имя процедуры, время доступа,доступ кем), которое вы выполнили.

Если вы хотите сохранить данные с помощью процедуры хранения, то автоматического вызова не будет. Вы должны создать процедуру хранения, а затем вызвать эту хранимую процедуру в c#. Командный тип.StoreProcedure.


Надеюсь, вы получили от этого решение.