Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » ASP: Все вопросы

Ответить
Настройки темы
ASP: Все вопросы

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


стоит ли изучать или нет?...
кто знает, юзал, поделитесь мнением...

Отправлено: 19:08, 03-02-2006

 

Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я взял пример с realcoding.net :

Код: Выделить весь код
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>   //На этой строке выдает описанную выше ошибку
<%@ Import Namespace="System.Text"%>
<html>
<script language="C#" runat="server">
    SQLConnection myConnection;
    protected void Page_Load(Object Src, EventArgs E ) 
    {
        myConnection = new SQLConnection 
                     ("server=localhost;uid=sa;pwd=;database=pubs");
        if (!IsPostBack)
            BindGrid();

    }
public void AddAuthor_Click(Object sender, EventArgs E) 
    {
        if (au_id.Value == "" || au_fname.Value == "" || 
                      au_lname.Value == "" || phone.Value == "")
        {
          Message.InnerHtml = "ОШИБКА: Пустое значение не допустимо для полей 
                               Author ID, Name или Phone";
          Message.Style["color"] = "red";
          BindGrid();
          return;
        }

        String insertCmd = "insert into Authors values 
                   (@Id, @LName, @FName, @Phone, @Address, @City, 
                    @State, @Zip, @Contract)";
        SQLCommand myCommand = new SQLCommand(insertCmd, 
                                                    myConnection);
        myCommand.Parameters.Add(new SQLParameter("@Id", 
                                        SQLDataType.VarChar, 11));
        myCommand.Parameters["@Id"].Value = au_id.Value;
        myCommand.Parameters.Add(new SQLParameter("@LName", 
                                        SQLDataType.VarChar, 40));
        myCommand.Parameters["@LName"].Value = au_lname.Value;
        myCommand.Parameters.Add(new SQLParameter("@FName", 
                                        SQLDataType.VarChar, 20));
        myCommand.Parameters["@FName"].Value = au_fname.Value;
        myCommand.Parameters.Add(new SQLParameter("@Phone", 
                                           SQLDataType.Char, 12));
        myCommand.Parameters["@Phone"].Value = phone.Value;
        myCommand.Parameters.Add(new SQLParameter("@Address", 
                                        SQLDataType.VarChar, 40));
        myCommand.Parameters["@Address"].Value = address.Value;
        myCommand.Parameters.Add(new SQLParameter("@City", 
                                        SQLDataType.VarChar, 20));
        myCommand.Parameters["@City"].Value = city.Value;
        myCommand.Parameters.Add(new SQLParameter("@State", 
                                            SQLDataType.Char, 2));
        myCommand.Parameters["@State"].Value = state.Value;
        myCommand.Parameters.Add(new SQLParameter("@Zip", 
                                            SQLDataType.Char, 5));
        myCommand.Parameters["@Zip"].Value = zip.Value;
        myCommand.Parameters.Add(new SQLParameter("@Contract", 
                                          SQLDataType.VarChar,1));
        myCommand.Parameters["@Contract"].Value = contract.Value;

        SQLConnection myConnection = new SQLConnection 
                 ("server=localhost;uid=sa;pwd=;database=pubs");
        SQLCommand myCommand = new SQLCommand(insertCmd.ToString(), 
                               myConnection);
        myCommand.ActiveConnection.Open();

        try 
        {
            int rowsAffected = 0;
            myCommand.Execute(ref rowsAffected);
            Message.InnerHtml = "<b>Record Added</b><br>" + 
                                insertCmd.ToString();
        }
        catch (SQLException e)
        {
            if (e.Number == 2627)
                Message.InnerHtml = "ОШИБКА: Запись с таким первичным
                                    ключом уже существует ";
            else
                Message.InnerHtml = "ОШИБКА: Невозможно добавить запись,
                                   пожалуйста, убедитесь, что поля правильно заполнены";
            Message.Style["color"] = "red";
        }
        myCommand.ActiveConnection.Close();

        BindGrid();
    }

public void BindGrid() 
    {

        SQLConnection myConnection = new SQLConnection 
                  ("server=localhost;uid=sa;pwd=;database=pubs");

        SQLDataSetCommand myCommand = new SQLDataSetCommand("select 
                                     * from Authors", myConnection);

        DataSet ds = new DataSet();
        myCommand.FillDataSet(ds, "Authors");

        MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;
        MyDataGrid.DataBind();
    }
</script>

<body style="font: 10pt verdana">

  <form runat="server">
    <h3><font face="Verdana">Inserting a Row of Data</font></h3>

    <table width="95%">
      <tr>
        <td valign="top">

          <ASP:DataGrid id="MyDataGrid" runat="server"
            Width="700"
            BackColor="#ccccff" 
            BorderColor="black"
            ShowFooter="false" 
            CellPadding=3 
            CellSpacing="0"
            Font-Name="Verdana"
            Font-Size="8pt"
            HeaderStyle-BackColor="#aaaadd"
            MaintainState="false"
          />
        </td>
        <td valign="top">

          <table style="font: 8pt verdana">
            <tr>
              <td colspan="2" bgcolor="#aaaadd" style="font:10pt 
                                  verdana">Add a New Author:</td>
            </tr>
            <tr>
              <td nowrap>Author ID: </td>
              <td><input type="text" id="au_id" value="000-00-0000" 
                                          runat="server"></td>
            </tr>
            <tr>
              <td nowrap>Last Name: </td>
              <td><input type="text" id="au_lname" value="Doe" 
                                                runat="server"></td>
            </tr>  
            <tr nowrap>
              <td>First Name: </td>
              <td><input type="text" id="au_fname" value="John" 
                                                runat="server"></td>
            </tr>
            <tr>
              <td>Phone: </td>
              <td><input type="text" id="phone" value="808 555-5555" 
                                                runat="server"></td>
            </tr>
            <tr>
              <td>Address: </td>
              <td><input type="text" id="address" value="One 
                                 Microsoft Way" runat="server"></td>
            </tr>
            <tr>
              <td>City: <td>
              <td><input type="text" id="city" value="Redmond" 
                                                runat="server"></td>
            </tr>
            <tr>
              <td>State: </td>
              <td>
                <select id="state" runat="server">
                  <option>CA</option>
                  <option>IN</option>  
                  <option>KS</option>  
                  <option>MD</option>  
                  <option>MI</option>  
                  <option>OR</option> 
                  <option>TN</option>  
                  <option>UT</option>  
                </select>
              </td>
            </tr>
            <tr>
              <td nowrap>Zip Code: </td>
              <td><input type="text" id="zip" value="98005" 
                                                runat="server"></td>
            </tr>
            <tr>
              <td>Contract:</td>
              <td>
                <select id="contract" runat="server">
                  <option value="0">False</option>
                  <option value="1">True</option>
                </select>
              </td>
            </tr>
            <tr>
              <td></td>
              <td style="padding-top:15">
                <input type="submit" OnServerClick="AddAuthor_Click" 
                                  value="Add Author" runat="server">
              </td>
            </tr>
            <tr>
              <td colspan="2" style="padding-top:15" align="center">
                <span id="Message" MaintainState="false" 
                          style="font: arial 11pt;" runat="server"/>
              </td>
            </tr>
          </table>

        </td>
      </tr>
    </table>

  </form>

</body>
</html>
Пробовал переделать код на работу с OleDb

System.Data.SQL => System.Data.OleDB
SQLConnection =>OleDbConnection
...
Пишу дома, а интернет на работе
MSDN дома нет, и посмотреть аналоги немогу
Например, на одном из примеров застрял на SQLExecuteQuery - какой аналог этой функции в OleDb?

Нужно написать модуль для редактирования и добавления в базе данных!

Есть примеры, но они для работы с MSSQL! Поэтому и решил поставить MSSQL.

Последний раз редактировалось vadimiron, 28-11-2007 в 17:04.


Отправлено: 16:43, 28-11-2007 | #41



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

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


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Оформляйте код пожалуйста тегами форума

Попробуйте вот этот код для считавыния из Access-a

Код: Выделить весь код
string ConnectionString="Строка подсоединения";
string strSQL = "SELECT * FROM [Имя Таблицы]";
OleDbConnection DBConnection = new OleDbConnection(ConnectionString);

            try
            {
                DBConnection.Open();

                OleDbCommand cmd = new OleDbCommand(strSQL, DBConnection );

                //Execute SELECT
                OleDbDataReader dr = cmd.ExecuteReader();


                //Get Rows                
                while (dr.Read())
                {
                    string output=dr["Имя Столбца"].ToString();
                    Console.WriteLine(output);
                }

                dr.Close();

            }
            catch (Exception ex)
            {                
                Console.WriteLine("Error: " + ex.Message);
            }

-------
Fortes fortuna adiuvat


Отправлено: 17:13, 28-11-2007 | #42


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата vadimiron:
Оформляйте код пожалуйста тегами форума »
ОК!
На другом форуме прочитал такое:
Цитата:
Может базу Access правльно настроить? насколько помню там есть возможность выбора прав при подключении (в настройках - "владелец" или "пользователь").
А вы можете что-то добавить?

Отправлено: 17:29, 28-11-2007 | #43


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Lihonosov,
Честно говоря, не знаю. База к которой я подключаюсь, не мной ведётся. Мне просто дали пароль и Логин и показали, где она лежит.

Для тестов я создавал для себя сам базу. Без всяких паролей и тд. Попробуйте тоже так. Создайте новую Access-базу. Там одну таблицу с парой столбцов и парой записей. И попробуйте поконектиться к ней

-------
Fortes fortuna adiuvat


Отправлено: 17:36, 28-11-2007 | #44


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата vadimiron:
Для тестов я создавал для себя сам базу. Без всяких паролей и тд. Попробуйте тоже так. Создайте новую Access-базу. Там одну таблицу с парой столбцов и парой записей. И попробуйте поконектиться к ней »
Я разобрался как получать данные и выводить их, например в DataGrid. С поиском и последущим выводом тоже. Теперь нужно добавлять и удалять записи, тут застрял!

А еще вопрос, мне хотелось бы чтобы когда, пользователь ввел слово поиска и ему вывелись результаты в DataGridе, то искомое слово было везде выделено другим цветом!
Может знаете как это реализовать? Ссылка или пример?

Отправлено: 17:43, 28-11-2007 | #45


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Посмотрите здесь - вроде то. (Я сам не пробЫвал)

-------
Fortes fortuna adiuvat


Отправлено: 18:49, 28-11-2007 | #46


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
<%@ Import Namespace="System.Data.SQL" %>
Заменил везде в тексте SQL на Sql и ошибок с этим больше нет, но на другом застрял.

Решил все переделать на работу с Access.

Код: Выделить весь код
<%@ Page Language="C#" Debug="true" %>
 <%@ Import Namespace="System.Data" %>   
<%@ Import Namespace="System.Data.OleDb" %>   
<%@ Import Namespace="System.Text"%>  
<html>  <script language="C#" runat="server">     
OleDbConnection myConnection;      
protected void Page_Load(Object Src, EventArgs E )      
 {          string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";          
strConnection += @"Data Source="+MapPath("pubs.mdb");         
 OleDbConnection myConnection=new OleDbConnection(strConnection);          
  if (!IsPostBack)              BindGrid();      }    
public void AddAuthor_Click(Object sender, EventArgs E)       {         
 if (au_id.Value == "" || au_fname.Value == "" ||                         au_lname.Value == "" || phone.Value == "")          {            
Message.InnerHtml = "ОШИБКА: Пустое значение не допустимо для полей Author ID, Name или Phone";            
Message.Style["color"] = "red";            BindGrid();            return;          }            

String insertCmd = "insert into Authors values (@Id, @LName, @FName, @Phone, @Address, @City,@State, @Zip, @Contract)";          
OleDbCommand myCommand = new OleDbCommand(insertCmd,myConnection);          myCommand.Parameters.Add(new OleDbParameter("@Id",OleDbType.VarChar, 11));          myCommand.Parameters["@Id"].Value = au_id.Value;          
myCommand.Parameters.Add(new OleDbParameter("@LName",OleDbType.VarChar, 40));          myCommand.Parameters["@LName"].Value = au_lname.Value;          myCommand.Parameters.Add(new OleDbParameter("@FName",OleDbType.VarChar, 20));          myCommand.Parameters["@FName"].Value = au_fname.Value;          myCommand.Parameters.Add(new OleDbParameter("@Phone", OleDbType.Char, 12));          myCommand.Parameters["@Phone"].Value = phone.Value;          
myCommand.Parameters.Add(new OleDbParameter("@Address",OleDbType.VarChar, 40));          myCommand.Parameters["@Address"].Value = address.Value;          myCommand.Parameters.Add(new OleDbParameter("@City",OleDbType.VarChar, 20));          myCommand.Parameters["@City"].Value = city.Value;          
myCommand.Parameters.Add(new OleDbParameter("@State",OleDbType.Char, 2));          myCommand.Parameters["@State"].Value = state.Value;         
 myCommand.Parameters.Add(new OleDbParameter("@Zip",OleDbType.Char, 5));          myCommand.Parameters["@Zip"].Value = zip.Value;          
myCommand.Parameters.Add(new OleDbParameter("@Contract",OleDbType.VarChar,1));          myCommand.Parameters["@Contract"].Value = contract.Value;            
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";          
strConnection += @"Data Source="+MapPath("pubs.mdb");          
OleDbConnection myConnection2=new OleDbConnection(strConnection);          
OleDbCommand myCommand2 = new OleDbCommand(insertCmd.ToString(), myConnection2);          myCommand2.Connection.Open();          
try           {              
myCommand2.ExecuteReader();              
Message.InnerHtml = "<b>Record Added</b><br>" + insertCmd.ToString();          }          catch(OleDbException e)          {             
 if (e.ErrorCode == 2627)                 
 Message.InnerHtml = "ОШИБКА: Запись с таким первичным ключом уже существует ";              else                  
Message.InnerHtml = "ОШИБКА: Невозможно добавить запись,пожалуйста, убедитесь, что поля правильно заполнены";              
Message.Style["color"] = "red";          }          
myCommand2.Connection.Close();          
BindGrid();      } 
 public void BindGrid()       
{          string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";          
strConnection += @"Data Source=" + MapPath("pubs.mdb");          
OleDbConnection myConnection=new OleDbConnection(strConnection);          
OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from Authors", myConnection);          
DataSet ds = new DataSet();          
myCommand.Fill(ds, "Authors");          MyDataGrid.DataSource=ds.Tables["Authors"].DefaultView;          
MyDataGrid.DataBind();      }  
</script>  
<body style="font: 10pt verdana">    <form runat="server">      <h3><font face="Verdana">Inserting a Row of Data</font></h3>      <table width="95%">        <tr>          <td valign="top">            <ASP:DataGrid id="MyDataGrid" runat="server"              Width="700"              BackColor="#ccccff"               BorderColor="black"              ShowFooter="false"               CellPadding=3               CellSpacing="0"              Font-Name="Verdana"              Font-Size="8pt"              HeaderStyle-BackColor="#aaaadd"              MaintainState="false"            />          </td>          <td valign="top">            <table style="font: 8pt verdana">              <tr>                <td colspan="2" bgcolor="#aaaadd" style="font:10pt verdana">Add a New Author:</td>              </tr>              <tr>                <td nowrap>Author ID: </td>                <td style="width: 158px"><input type="text" id="au_id" value="000-00-0000" runat="server"></td>              </tr>              <tr>                <td nowrap>Last Name: </td>                <td style="width: 158px"><input type="text" id="au_lname" value="Doe" runat="server"></td>              </tr>                <tr nowrap>                <td>First Name: </td>                <td style="width: 158px"><input type="text" id="au_fname" value="John" runat="server"></td>              </tr>              <tr>                <td>Phone: </td>                <td style="width: 158px"><input type="text" id="phone" value="808 555-5555" runat="server"></td>              </tr>              <tr>                <td>Address: </td>                <td style="width: 158px"><input type="text" id="address" value="One Microsoft Way" runat="server"></td>              </tr>              <tr>                <td>City: </td>                <td style="width: 158px"><input type="text" id="city" value="Redmond" runat="server"></td>                                     </tr>              <tr>                <td>State: </td>                <td style="width: 158px">                  <select id="state" runat="server">                    <option>CA</option>                    <option>IN</option>                      <option>KS</option>                      <option>MD</option>                      <option>MI</option>                      <option>OR</option>                     <option>TN</option>                      <option>UT</option>                    </select>                </td>              </tr>              <tr>                <td nowrap>Zip Code: </td>                <td style="width: 158px"><input type="text" id="zip" value="98005" runat="server"></td>              </tr>              <tr>                <td style="height: 24px">Contract:</td>                <td style="height: 24px; width: 158px;">                  <select id="contract" runat="server">                    <option value="0">False</option>                    <option value="1">True</option>                  </select>                </td>              </tr>              <tr>                <td></td>                <td style="padding-top:15; width: 158px;">                  <input type="submit" OnServerClick="AddAuthor_Click" value="Add Author" runat="server">                </td>              </tr>              <tr>                <td colspan="2" style="padding-top:15" align="center">                  <span id="Message" MaintainState="false" style="font: arial 11pt;" runat="server"/>                </td>              </tr>            </table>            </td>        </tr>      </table>      </form>    </body>  </html>
Выдает ошибку после нажатия на кнопку (процедура public void AddAuthor_Click(Object sender, EventArgs E))
"ОШИБКА: Невозможно добавить запись,пожалуйста, убедитесь, что поля правильно заполнены";
Подскажите в чем моя ошибка.

Отправлено: 11:48, 29-11-2007 | #47


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Проблема в том, что та ошибка, которую вы указали - это совсем не та ошибка, которая по правде возникает
Читайте, что пишут сами Exceptions

То есть вместо...
Код: Выделить весь код
if (e.ErrorCode == 2627)                 
 Message.InnerHtml = "ОШИБКА: Запись с таким первичным ключом уже существует ";              else                  
Message.InnerHtml = "ОШИБКА: Невозможно добавить запись,пожалуйста, убедитесь, что поля правильно заполнены";
....используйте лучше сообщение самого Exception
Код: Выделить весь код
Message.InnerHtml=e.Message;
Таким образом, вы сможете суть ошибки быстрей понять. По крайней мере пока пишите и тестируете программу - Потом конечно, вы можете вывод ошибок для пользователя украсить, но во вряме разработки надо читать оригинальное сообщение

-------
Fortes fortuna adiuvat

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:17, 29-11-2007 | #48


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


У Вас есть пример кода для записи и изменения данных в Access? Буду очень благодарен!

Сейчас работаю над выделением искомых слов, как только сделаю, то могу выложить примери на C#, если нужно.

Отправлено: 10:56, 30-11-2007 | #49


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Lihonosov,
Начните с самого простого (без использования параметров)
Код: Выделить весь код
string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\\mcTest.MDB"; 
string strSQL = "INSERT INTO Developer(Name, Address ) VALUES('NewName', 'NewAddress')" ; 
// create Objects of ADOConnection and ADOCommand 
OleDbConnection myConn = new OleDbConnection(strDSN); 
OleDbCommand myCmd = new OleDbCommand( strSQL, myConn ); 
try 
{ 
myConn.Open(); 
myCmd.ExecuteNonQuery(); 
} 
catch (Exception e) 
{ 
Console.WriteLine("Error: \n{0}", e.Message); 
}  
finally 
{ 
myConn.Close(); 
}
Примерно такое проходит?? Получается записать данные?

-------
Fortes fortuna adiuvat


Последний раз редактировалось vadimiron, 02-12-2007 в 18:49.


Отправлено: 17:33, 02-12-2007 | #50



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » ASP: Все вопросы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Steam .:[все вопросы]:. sertomclancy Игры 63 16-07-2019 06:19
Антивирусы - Avast! .:[Все вопросы]:. Guest Защита компьютерных систем 137 08-02-2016 12:26
.NET - вопросы по ASP.NET S1stem Программирование и базы данных 2 21-07-2015 16:33
Info - IP - INFO [Все вопросы] gurWin Защита компьютерных систем 221 16-12-2010 14:02
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. Microsoft Windows 2000/XP 105 30-06-2010 11:58




 
Переход